首页 > 云计算 > 公有云实践 > IoT物联网平台通信用Topic梳理——实践类
IoT物联网平台基于MQTT协议的Pub/Sub通信,那么topic和payload设计就很重要。
我们可以定义出不同topic来处理不同业务场景,类似web开发中的API设计。
当我们创建产品后,系统会自动生成3个自定义topic,方便我们使用。
|
Topic |
权限——— |
备注——————— |
|
/${ProductKey}/${DeviceName}/user/update
|
发布
|
上报数据
|
|
/${ProductKey}/${DeviceName}/user/update/error
|
发布
|
上报错误事件
|
|
/${ProductKey}/${DeviceName}/user/get
|
订阅
|
接收云端数据
|
默认topic是一个示范,我们可以根据业务需求,自己定义Topic和Payload,来解决现实中的问题。比如下面的示例:
|
Topic |
权限——— |
备注—————— |
|
/${ProductKey}/${DeviceName}/user/heart/post
|
发布
|
定期上报数据
|
|
/${ProductKey}/${DeviceName}/user/bizdata/post
|
发布
|
业务触发上报
|
|
/${ProductKey}/${DeviceName}/user/biz/control
|
订阅
|
接收云端指令
|
|
/${ProductKey}/${DeviceName}/user/config/modify
|
订阅
|
接收设备配置变更
|
对于设备上报数据,我们可以把不同优先级的消息做分类,通过规则引擎流转分流到不同队列,给予不同处理资源,避免重要业务消息延迟过高。
对于云端指令接收,我们也可以区分业务指令和配置指令,给予不同优先级。
用于实现设备影子功能,需要使用如下topic
|
Topic |
权限——— |
备注—————————— |
|
/shadow/update/${ProductKey}/${DeviceName}
|
发布
|
更新设备影子 QoS=1
|
|
/shadow/get/${ProductKey}/${DeviceName}
|
订阅
|
获取设备影子
|
设备影子可以实现设备的运行参数的配置更新功能。
|
Topic |
权限——— |
备注———————— |
|
/ota/device/inform//${ProductKey}/${DeviceName}
|
发布
|
上报当前固件版本
|
|
/ota/device/upgrade/${ProductKey}/${DeviceName}
|
订阅
|
接收OTA信息
|
|
/ota/device/progress/${ProductKey}/${DeviceName}
|
发布
|
上报OTA进度
|
|
/ota/device/request/${ProductKey}/${DeviceName}
|
发布
|
主动请求OTA信息
|
|
Topic |
权限——— |
备注—————— |
|
/broadcast/${YourProductKey}/+
|
订阅
|
接收广播信息
|
同一产品的设备,可以接收到云端的广播指令,由于IoT平台限制广播最大触达1000个设备。
这里我们可以把设备按规则做分组,不同组设备自动订阅不同group的topic,比如:
使用下面topic,IoT平台实现了基于mqtt协议的云端发起对设备的同步RPC调用
|
Topic |
权限—— |
备注———————— |
|
/sys/${ProductKey}/${DeviceName}/rrpc/request/+
|
订阅
|
接收RRPC调用
|
|
/sys/${ProductKey}/${DeviceName}/rrpc/response/${msgId}
|
发布
|
响应msgId对应RRPC请求
|
使用设备标签topic可以动态给设备添加运行时标签
|
Topic |
权限——— |
备注——————— |
|
/sys/${ProductKey}/${DeviceName}/thing/deviceinfo/update
|
发布
|
更新设备标签
|
|
Topic |
权限——— |
备注———————— |
|
/sys/${ProductKey}/${DeviceName}/thing/config/get
|
发布
|
主动查询配置信息
|
|
/sys/${ProductKey}/${DeviceName}/thing/config/push
|
订阅
|
接收配置信息
|
|
/sys/${ProductKey}/${DeviceName}/thing/config/get_reply
|
订阅
|
接收配置信息
|
|
Topic |
权限——— |
备注———————— |
|
/sys/${ProductKey}/${DeviceName}/thing/event/property/post
|
发布
|
上报属性数据
|
|
/sys/${ProductKey}/${DeviceName}/thing/event/property/post_reply
|
订阅
|
接收返回结果
|
|
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post
|
发布
|
上报事件数据
|
|
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post_reply
|
订阅
|
接收返回结果
|
|
/sys/${ProductKey}/${DeviceName}/thing/service/property/set
|
订阅
|
接收属性设置指令
|
|
/sys/${ProductKey}/${DeviceName}/thing/service/property/set_reply
|
发布
|
返回处理结果
|
|
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer}
|
发布
|
接收服务调用指令
|
|
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer}_reply
|
订阅
|
返回服务处理结果
|
|
Topic |
权限——— |
备注—————— |
|
/sys/${ProductKey}/${DeviceName}/thing/model/up_raw
|
发布
|
上报数据
|
|
/sys/${ProductKey}/${DeviceName}/thing/model/down_raw
|
订阅
|
接收云端指令
|
更多信息参考: https://www.yuque.com/cloud-dev/iot-tech/kg84mi
物联网平台产品介绍详情:

阿里云物联网平台客户交流群
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70017009/viewspace-2937845/ ,如需转载,请注明出处,否则将追究法律责任。