Уровень Qos 2 в MQTT работает только при CleanSession, установленном в 0 0 - PullRequest
0 голосов
/ 06 сентября 2018

Я сделал опыт с брокером Москито:
1: подписчик подписывается на тему с Qos 2 и не отвечает Publish Received после получения сообщения;
2: Издатель публикует сообщение с Qos 2;

Я считаю, что брокер завершает рукопожатие Qos 2 с Publisher, даже если подписчик не указал, что он получил (Publish Received), это означает, что брокер станет прокси-сервером и будет гарантировать, что подписчик получит сообщение хотя бы один раз и только один раз.

Я запутался, что при каких обстоятельствах Абонент не сможет получить сообщение?

Единственное обстоятельство, о котором я могу думать, это то, что подписчик занят и не читает пакет вовремя, пока он не сломается. Таким образом, если подписчик повторно подключится с CleanSession, установленным в 0, брокер повторно отправит сообщение. Это означает, что Qos 1 или 2 работает только с CleanSession, установленным в режим 0.

Я действительно хочу знать, почему повторная доставка и потеря сообщения могут происходить по протоколу MQTT на основе TCP.

...