获取离线MQTT消息
更新时间:
为了简化离线消息获取机制,云消息队列 MQTT 版系统在客户端成功建立连接并通过权限校验后,会自动加载离线消息并下发到客户端。
注意事项
- 客户端建立连接后,需要通过权限校验才能自动加载离线消息。例如,若您使用的是Token验证的方式,则需要完成Token上传并通过校验后才会收到离线消息。
- 离线消息生成需要一定的时间,因为推送的消息需要等待客户端的ack超时才会被判成离线消息。所以,如果客户端闪断重连,不一定马上可以获取到刚刚的离线消息。延迟时间一般在5秒~10秒左右。
- 如果您的离线消息过多,即大于30条,云消息队列 MQTT 版系统会分批(5秒一次,每次30条)下发离线消息。
说明 对于部分老用户来说,有了自动加载机制,可不再使用原来的主动拉取的方式获取离线消息,但继续保留也无影响。
设置方法
您可以在消费端通过设置QoS和cleanSession两个参数来决定客户端是否需要获取离线消息。
QoS和cleanSession参数的详细说明,请参见名词解释。表 1. QoS和cleanSession的组合关系
QoS级别 | cleanSession=true | cleanSession=false |
QoS0 | 无离线消息,在线消息只尝试推一次。 | 有离线消息,在线消息只尝试推一次。 |
QoS1 | 无离线消息,在线消息保证可达。 | 有离线消息,所有消息保证可达。 |
QoS2 | 无离线消息,在线消息保证可达且只接收一次。 | 暂不支持。 |
文档内容是否对您有帮助?