Topic

1 什么是Topic

  • 物联网平台中,服务端和设备端通过 Topic 来实现消息通信。Topic是针对设备的概念,Topic类是针对产品的概念。产品的Topic类会自动映射到产品下的所有设备中,生成用于消息通信的具体设备Topic。
  • 为了方便海量设备基于海量Topic进行通信,简化授权操作,物联网平台增加了产品Topic类的概念。Topic类是一类Topic的集合。
  • 希沃物联平台的Topic分为系统定义Topic、RPC通信相关Topic、自定义Topic。

2 系统定义Topic

创建产品之后,自动拥有以下系统Topic权限。

  • /sys/${productKey}/​${deviceId}/thing/post:用于设备上报数据。权限:设备发布。
  • /sys/${productKey}/${deviceId}/up/request/${messageId} :用于设备上行获取属性/服务。权限:设备发布
  • /sys/${productKey}/${deviceId}/up/response/${messageId} :用于Broker下发属性获取响应/服务响应。权限:Broker发布。
  • /sys/${productKey}/${deviceId}/up/response/+:用户设备订阅属性获取响应。权限:设备订阅

3 RPC通信相关Topic

IoT Broker基于开源协议MQTT封装了同步/异步的通信模式,其中同步方式下,服务端下发指令给设备可以同步得到设备端的响应。

  • /sys/${productKey}/${deviceId}/rpc/request/${messageId} :用于Broker下发RPC请求给设备。权限:Broker发布。
  • /sys/${productKey}/${deviceId}/rpc/request/+:用于设备订阅RPC请求。权限:设备订阅。
  • /sys/${productKey}/${deviceId}/rpc/response/${messageId}:用于设备响应RPC请求。权限:设备发布。

4 自定义Topic

创建产品之后,用户可以在产品上创建自定义Topic。自定义Topic格式如下:

/user/${productKey}/${deviceId}/custom/xxx/xxx

其中/user/${productKey}/${deviceId}/custom/为固定前缀,后缀部分可支持多个斜杠“/”定义。

  • 自定义Topic权限支持:设备订阅、设备发布、设备订阅发布。

  • 自定义Topic支持通配符:+#

  • 自定义Topic通配符仅支持订阅权限,发布和发布订阅权限不支持通配符。

通配符 描述
# 这个通配符必须出现在 Topic 的最后一个类目,代表本级及下级所有类目。
例如, Topic:/user/productKey/device1/custom/#,可以代表 /user/productKey/device1/custom/update
/user/productKey/device1/custom/update/error
+ 代表本级所有类目。例如,Topic:/user/productKey/device1/custom/+/update
可以代表 /user/productKey/device1/custom/color/update
/user/productKey/device1/custom/attr/update