Watson IoT QoS1/2 попытки

Кто-нибудь знает, что делает брокер Watson IoT, если публикует сообщение QoS1 o 2 и не получает соответствующего подтверждения от клиента? Реализует ли он тайм-аут (скажем, 20 секунд или около того), а затем повторно отправляет сообщение? Кажется, что некоторые брокеры делают это, в то время как другие только повторно отправляют сообщение при новом соединении (конечно, если для сохранения установлено значение 1). Спецификация MQTT немного расплывчата в этом вопросе.


person Roy    schedule 08.12.2016    source источник


Ответы (1)


сообщение будет считаться находящимся в пути для клиента, который не подтвердил его, и повторная доставка этого сообщения произойдет только тогда, когда этот клиент отключится и снова подключится (но только если клиент был чистым сеансом = 0)

Для QoS1 и 2: хотя бы один раз (QoS1)

При уровне качества обслуживания 1 (QoS1) сообщение всегда доставляется хотя бы один раз. Если сбой происходит до того, как отправитель получит подтверждение, сообщение может быть доставлено несколько раз. Сообщение должно храниться локально у отправителя до тех пор, пока отправитель не получит подтверждение того, что сообщение было опубликовано получателем. Сообщение сохраняется на случай повторной отправки сообщения.

Ровно один раз (QoS2)

Уровень качества обслуживания 2 (QoS2) "ровно один раз" является самым безопасным, но самым медленным способом передачи. Сообщение всегда доставляется ровно один раз и также должно храниться локально у отправителя, пока отправитель не получит подтверждение того, что сообщение было опубликовано получателем. Сообщение сохраняется на случай повторной отправки сообщения. При уровне качества обслуживания 2 используется более сложная последовательность квитирования и подтверждения, чем для уровня 1, чтобы гарантировать, что сообщения не дублируются.

Интервал поддержки MQTT

Интервал поддержания активности MQTT, измеряемый в секундах, определяет максимальное время, которое может пройти без связи между клиентом и брокером. Клиент MQTT должен убедиться, что при отсутствии какой-либо другой связи с брокером отправляется пакет PINGREQ. Интервал поддержания активности позволяет как клиенту, так и брокеру обнаружить сбой в сети, что привело к разрыву соединения, не дожидаясь истечения периода тайм-аута TCP/IP.

Если ваши клиенты Watson IoT Platform MQTT используют общие подписки, значение интервала поддержания активности может быть установлено только в диапазоне от 1 до 3600 секунд. Если запрашивается значение 0 или значение, превышающее 3600, брокер платформы Watson IoT устанавливает интервал поддержания активности равным 3600 секундам.

Сохраненные сообщения

Платформа Watson IoT обеспечивает ограниченную поддержку функции сохраненных сообщений обмена сообщениями MQTT. Если для флага сохраненного сообщения установлено значение true в сообщении MQTT, которое отправляется с устройства, шлюза или приложения на платформу Watson IoT, сообщение обрабатывается как несохраненное сообщение. Организации Watson IoT Platform не имеют права публиковать сохраненные сообщения. Служба Watson IoT Platform переопределяет флаг сохраненного сообщения, если для него установлено значение true, и обрабатывает сообщение, как если бы для флага сохраненного сообщения было установлено значение false.

person idan    schedule 08.12.2016