2016-12-08 2 views
0

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

ответ

1

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

Для QoS1 и 2: По меньшей мере один раз (QoS1)

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

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

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

MQTT Keep Alive интервал

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

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

Нераспределенных сообщения

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

 Смежные вопросы

  • Нет связанных вопросов^_^