MQTT消息中是否保留消息顺序?
我想知道是否保留了按顺序发送的消息。也就是说,当发布者发送一系列消息时,是否保证每个订阅者都会收到与发布者发送的消息相同的序列?对于干净会话和持久会话 MQTT 3.1.1中消息排序功能的摘要可以在规范本身中找到 总之:MQTT消息中是否保留消息顺序?,mqtt,Mqtt,我想知道是否保留了按顺序发送的消息。也就是说,当发布者发送一系列消息时,是否保证每个订阅者都会收到与发布者发送的消息相同的序列?对于干净会话和持久会话 MQTT 3.1.1中消息排序功能的摘要可以在规范本身中找到 总之: 不保证以不同QoS值发布的消息的相对顺序。(例如,QoS 0可以超过QoS 2,因为它涉及单个分组,而不是后者的4个分组) QoS 0消息将按顺序传递(尽管消息可能会丢失) QoS 2消息将按顺序传递 QoS 1允许消息重复-有可能在发布的下一条消息的第一个实例之后出现重复消
- 不保证以不同QoS值发布的消息的相对顺序。(例如,QoS 0可以超过QoS 2,因为它涉及单个分组,而不是后者的4个分组)
- QoS 0消息将按顺序传递(尽管消息可能会丢失)
- QoS 2消息将按顺序传递
- QoS 1允许消息重复-有可能在发布的下一条消息的第一个实例之后出现重复消息
PUBLISH
,PUBREC
,PUBREL
,PUBCOMP
将在QOS 2
级别消息中按主题进行维护。但是,订阅者仍然可以按与发布者发布的顺序不同的顺序接收(可能但很少)。同样的逻辑也适用于QOS 1
让我们看看如何:
图片取自。v5.0规范:但是,QoS1中是否保证了“首次到达”的顺序?是否只保证每个主题的消息顺序?@user7335295不保证跨主题发送。我无法理解您如何从文档中推断以下
QoS 2消息将按顺序发送。我认为,对于QOS 1和QOS 2,顺序是不能保证的,除非为broker和任何发布者将搏击中的消息设置为1。