Считается ли доставка массажа QoS2 обработанной, если PUBCOMP отсутствует? - PullRequest
0 голосов
/ 18 сентября 2018

При рукопожатии из четырех частей (MQTT QoS уровень 2, передача ) последним подтверждающим сообщением является сообщение PUBCOMP.

Следующие предположения сделаны:

  1. Сообщение PUBCOMP отправляется получателем после обработки полезной нагрузки сообщения и доставки его другим подписчикам.
  2. Когда отправитель получает сообщения PUBCOMP, которые он считаетвся передача успешна и уведомляет вызывающего.
  3. Используемые ресурсы очищаются, и идентификатор пакета теперь можно повторно использовать для дальнейших передач.

Но что, если PUBCOMP никогда не принимается отправителем?

Отправитель продолжает некоторые попытки, отправив PUBREL (посредством чего получатель должен ответить PUBCOMP из-за спецификации MQTT).

Но что, если PUBCOMP просто отказывается возвращаться к получателю (каким-либо образом)?

Считается ли передача обработанной , хотя PUBCOMPэто миssing ?

Как отправитель узнает, что передача гарантированно обработана?С точки зрения отправителя это также может означать, что его собственный PUBCOMP никогда не достигал получателя (что может означать, что передача не была обработана) ...

Это оставляет отправителя в неизвестном состоянии.Или нет?

...