Сохраняется ли порядок сообщений в сообщениях MQTT?

Интересно, сохранено ли отправленное сообщение. То есть, когда издатель отправляет последовательность сообщений, каждый абонент гарантирует получение той же последовательности, что и издатель? Для чистых и постоянных сеансов?

Ответ 1

Резюме возможностей упорядочения сообщений в MQTT 3.1.1 можно найти в самой спецификации здесь.

Вкратце:

  • никаких гарантий относительно относительного упорядочения сообщений, опубликованных с разными значениями QoS. (например, QoS 0 может превышать QoS 2, например, поскольку он включает в себя один пакет, а не 4 пакета последнего).
  • Сообщения QoS 0 будут доставлены по порядку (хотя сообщения могут потеряться)
  • Сообщения QoS 2 будут доставлены в порядке
  • QoS 1 разрешает дубликаты сообщений - возможно, дубликат будет отправлен после первого экземпляра следующего опубликованного сообщения.

Заказ QoS 1 может быть гарантирован, если клиент/брокер разрешает только один поток сообщений в любое время.