我想知道消息发送的顺序是否被保留。也就是说,当发布者发送一系列的消息时,每个订阅者是否保证接收到与发布者发送顺序相同的消息?这适用于干净和持久化会话吗?
我想知道消息发送的顺序是否被保留。也就是说,当发布者发送一系列的消息时,每个订阅者是否保证接收到与发布者发送顺序相同的消息?这适用于干净和持久化会话吗?
代理已发送PUBLISH数据包以传递消息m1。
代理已发送PUBLISH数据包以传递消息m2。
订阅者已发送PUBREC数据包以确认收到消息m1。
订阅者已发送PUBREC数据包以确认收到消息m2。
代理已发送PUBREL数据包以传递消息m1,但该数据包已被丢弃。
代理已发送PUBREL数据包以传递消息m2。
订阅者已发送PUBCOMP数据包以确认收到消息m2。
代理在消息m1的PUBREL数据包超时后重试,将为消息m1重试。
代理重新发送PUBREL数据包以传递消息m1。
订阅者已发送PUBCOMP数据包以确认收到消息m1。
根据上述顺序,接收器有可能先处理消息m2。然而,m1是在m2之前发布的。
查看此答案以获取更多详细信息。
图片来自u-blox。