为了简化离线消息获取机制,微消息队列MQTT版系统在客户端成功建立连接并通过权限校验后,会自动加载离线消息并下发到客户端。

注意事项

  • 客户端建立连接后,需要通过权限校验才能自动加载离线消息。例如,若您使用的是Token验证的方式,则需要完成Token上传并通过校验后才会收到离线消息。
  • 离线消息生成需要一定的时间,因为推送的消息需要等待客户端的ack超时才会被判成离线消息。所以,如果客户端闪断重连,不一定马上可以获取到刚刚的离线消息。延迟时间一般在5秒~10秒左右。
  • 如果您的离线消息过多,即大于30条,微消息队列MQTT版系统会分批(5秒一次,每次30条)下发离线消息。
说明 对于部分老用户来说,有了自动加载机制,可不再使用原来的主动拉取的方式获取离线消息,但继续保留也无影响。

设置方法

您可以在消费端通过设置QoScleanSession两个参数来决定客户端是否需要获取离线消息。
表 1. QoS和cleanSession的组合关系
QoS级别 cleanSession=true cleanSession=false
QoS0 无离线消息,在线消息只尝试推一次。 无离线消息,在线消息只尝试推一次。
QoS1 无离线消息,在线消息保证可达。 有离线消息,所有消息保证可达。
QoS2 无离线消息,在线消息保证只推一次。 暂不支持。
QoScleanSession参数的详细说明,请参见名词解释