MQTT中的Qos 2级别仅在CleanSession设置为0时才有效吗?

时间:2018-09-06 06:20:56

标签: mqtt mosquitto

我曾与Mosquitto经纪人合作过:
1:订阅者使用Qos 2订阅主题,并且在收到消息后不响应Publish Received
2:发布者使用Qos 2发布消息;

我发现,即使订户尚未表明已收到(Publish Received),代理也完成了与发布者的Qos 2握手,这意味着代理将成为代理,并确保订户在以下位置接收消息:至少一次,只有一次。

我很困惑,订户在什么情况下将无法收到消息?

我能想到的唯一情况是订户很忙,在粉碎之前没有及时读取数据包。因此,如果订户在CleanSession设置为0的情况下再次重新连接,则代理将重新发送该消息。这意味着Qos 1或2仅在将CleanSession设置为0模式时才能使用。

我真的很想知道为什么在基于TCP的协议MQTT下可能发生重试传递和消息丢失。

0 个答案:

没有答案