Можно ли гарантировать доставку заказа mqtt msg в упрощенном случае?

Если есть только один брокер, один издатель, одна тема и чистый сеанс, в этом упрощенном случае,

Можно ли гарантировать, что заказ на доставку сообщений на стороне подписчика будет таким же, как заказ на отправку на стороне издателя? Будет ли это зависеть от QoS?

1 ответ

Решение

Раздел 4.6 спецификации MQTT 3.1.1 охватывает порядок сообщений:

4.6 Порядок сообщений

Клиент ДОЛЖЕН следовать этим правилам при реализации потоков протоколов, определенных в этой главе:

  • Когда он повторно отправляет любые пакеты PUBLISH, он ДОЛЖЕН повторно отправлять их в порядке, в котором были отправлены исходные пакеты PUBLISH (это относится к сообщениям QoS 1 и QoS 2) [MQTT-4.6.0-1]
  • Он ДОЛЖЕН отправлять пакеты PUBACK в порядке, в котором были получены соответствующие пакеты PUBLISH (сообщения QoS 1) [MQTT-4.6.0-2]
  • Он ДОЛЖЕН отправлять пакеты PUBREC в порядке, в котором были получены соответствующие пакеты PUBLISH (сообщения QoS 2) [MQTT-4.6.0-3] Он ДОЛЖЕН отправлять пакеты PUBREL в порядке, в котором были получены соответствующие пакеты PUBREC (сообщения QoS 2)) [MQTT-4.6.0-4]

Сервер ДОЛЖЕН по умолчанию обрабатывать каждую тему как "упорядоченную тему". Он МОЖЕТ предоставлять административный или другой механизм, позволяющий рассматривать одну или несколько тем как "неупорядоченную тему" ​​[MQTT-4.6.0-5].

Когда Сервер обрабатывает сообщение, которое было опубликовано в Упорядоченной теме, он ДОЛЖЕН следовать правилам, перечисленным выше, при доставке сообщений каждому из своих подписчиков. Кроме того, он ДОЛЖЕН отправлять пакеты PUBLISH потребителям (для той же темы и QoS) в том порядке, в котором они были получены от любого данного клиента [MQTT-4.6.0-6].

Прочитав это, я пришел бы к выводу, что сообщения обычно (если брокер специально не настроен на использование неупорядоченных тем) отправляются по порядку, но если сообщение с высоким QOS не подтверждено должным образом, оно может быть повторно отправлено, что может привести к его повторной доставке из последовательности.,

Другие вопросы по тегам