消息下发概述
概述
消息下发不依赖产品模型,提供给设备的单向通知,具有消息缓存功能;云端消息下发中,平台会以异步方式(消息下发后无需等待设备侧回复响应)下发消息给设备;若设备不在线,则在设备在线后发送数据(支持配置,最长缓存时间24小时)。平台对每个设备默认只保存20条消息,超过20条后,后续的消息会替换下发最早的消息。同时,消息下发支持使用自定义topic的格式进行数据下发。
消息下发Topic类别 |
描述 |
---|---|
系统Topic |
平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义。 |
自定义Topic |
用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。 自定义topic分类:
|
使用场景
- 数据格式需要自定义,不依赖物模型。
- 大量数据高频率下发。
使用限制
- 单个消息内容不大于256KB。
- 单个设备下发消息缓存数量为20个。
- MQTT自定义Topic支持的最大长度为128字节。
- 缓存时间支持配置,最长不超过24小时。
使用服务质量
- 支持MQTT的服务质量等级为QoS 0、QoS 1,不支持QoS 2。
- Topic的QoS为 0 时,消息下发不需要等设备回ACK,仅只下发一次; Topic的QoS为 1时,消息下发需要等设备回ACK。
- 平台默认该设备订阅了QoS为0的系统Topic, 如果需要QoS为1的下行系统Topic,需要设备设置订阅QoS。
- 设备订阅非$oc开头的自定义Topic, 如果需要平台支持该Topic的QoS为1, 需向平台提交工单联系申请。
- 如果设备订阅Topic的QoS为1, 平台下发消息没有收到设备确认ACK时, 平台会重发消息, 默认每隔2s重发1次, 共重发3次;
重发后设备依旧没有回确认响应且消息还在缓存时间内, 设备再次上线或订阅Topic时, 平台会再重发消息, 默认每隔10s重发1次, 共重发5次;
同时每次重发也会触发每隔2s重发机制, 故订阅Topic的QoS为1时平台会重发消息, 设备可能会收到重复消息,建议设备要有去重机制。