MQTT获取离线消息小议
概述
微消息队列MQ for IoT在处理离线消息时,为了简化离线消息获取机制,微消息队列系统在客户端成功建立连接并通过权限校验后,会自动加载离线消息并下发到客户端,但是实际在使用过程中会出现消费端启动后迟迟无法获取离线消息的问题,本文主要介绍延迟消息的发送与接收环节需要注意的问题。
协议相关
注意在使用SDK进行离线消息的发送过程中需要特别注意QoS和cleanSession两个参数。
- QoS 指代消息传输的服务质量(主要针对发送端)
| 取值 | 1 | 2 | 3 |
|---|---|---|---|
| 意义 | 最多分发一次 | 最多分发一次 | 仅分发一次 |
- cleanSession 建立 TCP 连接后是否关心之前状态(主要针对接收端)
true | false |
------- | ------- |
客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息 | 客户端再次上线时,还需要处理之前的离线消息,