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

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

6.3. Підписка на повідомлення

Щоб отримувати повідомлення на потрібні теми, клієнт надсилає до брокера MQTT повідомлення SUBSCRIBE. Це повідомлення містить унікальний ідентифікатор пакета та список підписок на теми (перелік topicID).

Повідомлення SUBSCRIBE може містити кілька підписок для абонента. Кожна підписка складається з теми та рівня QoS. Тема в повідомленні підписки може містити підстановки, які дозволяють підписатися на теми за вказаним шаблоном, а не на одну конкретну тему. Якщо для одного клієнта існує паралельне підключення, брокер доставляє повідомлення, яке має найвищий рівень QoS для цієї теми.

 

Поле

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

Опис

packetID

Так

унікальний ідентифікатор пакету

topic_1

Так

перша гілка, на яку підписується клієнт

qos_1

Так

рівень QoS (0..2) для першої гілки

topic_2

Ні

друга гілка, на яку підписується клієнт

qos_2

Ні

рівень QoS (0..2) для другої гілки

 

 

Для підписки на декілька тем в одному повідомленні можуть використовуватися знаки підстановки. Детальніше про це читайте в наступному пункті.

Щоб підтвердити кожну підписку, брокер надсилає Клієнту повідомлення про підтвердження SUBAK. Це повідомлення містить ідентифікатор пакета оригінального повідомлення SUBSCRIBE (щоб чітко ідентифікувати повідомлення) та список кодів повернення.

  • 0 -    Успішно, Maximum QoS 0
  • 1 -    Успішно, Maximum QoS 1
  • 2 -    Успішно, Maximum QoS 2
  • 128 - Відмова

Для відписки від теми використовується пакет Unsubscribe