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。 |