IoT物联网平台通信用Topic梳理

简介: 基于设备实践梳理出来的Topic总结

1.前言

IoT物联网平台基于MQTT协议的Pub/Sub通信,那么topic和payload设计就很重要。
我们可以定义出不同topic来处理不同业务场景,类似web开发中的API设计。

2.自定义Topic类

2.1 默认自定义Topic

当我们创建产品后,系统会自动生成3个自定义topic,方便我们使用。

Topic权限备注
/${ProductKey}/${DeviceName}/user/update发布上报数据
/${ProductKey}/${DeviceName}/user/update/error发布上报错误事件
/${ProductKey}/${DeviceName}/user/get订阅接收云端数据

2.2 自定义Topic

默认topic是一个示范,我们可以根据业务需求,自己定义Topic和Payload,来解决现实中的问题。比如下面的示例:

Topic权限备注
/${ProductKey}/${DeviceName}/user/heart/post发布定期上报数据
/${ProductKey}/${DeviceName}/user/bizdata/post发布业务触发上报
/${ProductKey}/${DeviceName}/user/biz/control订阅接收云端指令
/${ProductKey}/${DeviceName}/user/config/modify订阅接收设备配置变更

对于设备上报数据,我们可以把不同优先级的消息做分类,通过规则引擎流转分流到不同队列,给予不同处理资源,避免重要业务消息延迟过高。
对于云端指令接收,我们也可以区分业务指令和配置指令,给予不同优先级。

3.系统Topic列表

3.1 设备影子 

用于实现设备影子功能,需要使用如下topic

Topic权限备注
/shadow/update/${ProductKey}/${DeviceName}发布更新设备影子 QoS=1
/shadow/get/${ProductKey}/${DeviceName}订阅获取设备影子

设备影子可以实现设备的运行参数的配置更新功能。

3.2 固件升级

Topic权限备注
/ota/device/inform//${ProductKey}/${DeviceName}发布上报当前固件版本
/ota/device/upgrade/${ProductKey}/${DeviceName}订阅接收OTA信息
/ota/device/progress/${ProductKey}/${DeviceName}发布上报OTA进度
/ota/device/request/${ProductKey}/${DeviceName}发布主动请求OTA信息

3.3 广播

Topic权限备注
/broadcast/${YourProductKey}/+订阅接收广播信息

同一产品的设备,可以接收到云端的广播指令,由于IoT平台限制广播最大触达1000个设备。
这里我们可以把设备按规则做分组,不同组设备自动订阅不同group的topic,比如:

  • /broadcast/${YourProductKey}/group/a 
  • /broadcast/${YourProductKey}/group/b

3.4 RRPC通信

使用下面topic,IoT平台实现了基于mqtt协议的云端发起对设备的同步RPC调用

Topic权限备注
/sys/${ProductKey}/${DeviceName}/rrpc/request/+订阅接收RRPC调用
/sys/${ProductKey}/${DeviceName}/rrpc/response/${msgId}发布响应msgId对应RRPC请求

3.5 设备标签

使用设备标签topic可以动态给设备添加运行时标签

Topic权限备注
/sys/${ProductKey}/${DeviceName}/thing/deviceinfo/update发布更新设备标签

3.6 远程配置

Topic权限备注
/sys/${ProductKey}/${DeviceName}/thing/config/get发布主动查询配置信息
/sys/${ProductKey}/${DeviceName}/thing/config/push订阅接收配置信息
/sys/${ProductKey}/${DeviceName}/thing/config/get_reply订阅接收配置信息

4.物模型通信

4.1 物模型JSON数据通信

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订阅返回服务处理结果

4.2 物模型透传数据通信

Topic权限备注
/sys/${ProductKey}/${DeviceName}/thing/model/up_raw发布上报数据
/sys/${ProductKey}/${DeviceName}/thing/model/down_raw订阅接收云端指令

更多信息参考: https://www.yuque.com/cloud-dev/iot-tech/kg84mi

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值