2016-06-29 3 views
0

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

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

ответ

0

Раздел 4.6 от MQTT 3.1.1 spec охватывает упорядоченность сообщения:

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 не признаются должным образом, она может быть негодуют, которые могут привести к он повторно выставляется из последовательности.

+0

большое спасибо за ваш ответ. Просто небольшой комментарий, я бы предпочел QOS 1, чем «высокое сообщение QOS». –

+0

Высокий QOS в основном ничего, кроме 0 – hardillb

+0

Да, но QOS 2 msg не будет повторно добавлен. –