Друкувати цей розділДрукувати цей розділ

Лекція 2.2. Передача даних в архітектурі IIoT: MQTT

6. Обмін повідомленнями в MQTT

6.2. Публікація повідомлення

Клієнт MQTT може публікувати повідомлення, як тільки він підключається до брокера. MQTT використовує фільтрування повідомлень на брокері на основі тем. Кожне повідомлення має містити тему, яку брокер може використовувати для пересилання повідомлення зацікавленим клієнтам. Як правило, кожне повідомлення має корисну інформацію, яка містить дані для передачі у форматі байтів MQTT.

Клієнт, що публікує дані (видавець) вирішує, чи хоче він відправити двійкові, текстові дані або навіть повноцінні XML або JSON. Повідомлення публікації (PUBLISH) у MQTT має кілька атрибутів, які вказані в таблиці 3:

Поле

Обов’язкове поле

Опис

packetID

Так

Унікально ідентифікує пакет у змінному заголовку. Для QoS-0 завжди 0.

topicName

Так

Тема гілки для публікації (наприклад, Drive/Speed)

qos

Так

рівень QoS (0..2)

retainFlag

Так

прапорець, який вказує чи буде дане повідомлення зберігатися як останнє хороше; якщо новий клієнт підпишеться під дану гілку він автоматично отримає це повідомлення

payload

Ні

корисне навантаження

dupFlag

Так

прапорець, що вказує на те, що повідомлення є дублікатом і відправлено повторно

 

Коли клієнт надсилає повідомлення до MQTT брокера для публікації, брокер читає повідомлення, підтверджує його (відповідно до рівня QoS) і обробляє. Обробка брокером включає в себе визначення того, які клієнти підписалися на тему та надсилання їм повідомлення.

Клієнт, який спочатку публікує повідомлення, турбується тільки про доставку повідомлення PUBLISH брокеру. Як тільки брокер отримує повідомлення PUBLISH, він зобов'язаний доставити його всім абонентам. Видавець не отримує жодних відгуків щодо того, хто цікавиться опублікованим повідомленням, чи скільки клієнтів отримали повідомлення від брокера.