2015-06-20 134 views
10

我不知道是否保留了发送消息的顺序。也就是说,当发布者发送一系列消息时,是否每个订阅者都保证接收到发布者发送的相同序列?对于干净和持久的会话?消息顺序是否保存在MQTT消息中?

回答

19

MQTT 3.1.1中消息排序功能的摘要可以在规范本身here中找到。

总结:

  • 无法保证进行关于具有不同QoS值发布的消息的相对顺序。 (例如,QoS 0可以超过QoS 2,例如因为它涉及单个数据包而不是后者的4个数据包)。
  • 的QoS 0的消息将在顺序传递(尽管消息可能丢失)
  • 的QoS 2周的消息将在顺序传递
  • 的QoS 1允许用于消息重复 - 这是可能后重复将到达发布的下一条消息的第一个实例。

如果客户端/代理在任何时间只允许单个消息进入,QoS 1的排序可以得到保证。