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

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

6.1. Процедура з’єднання

https://www.hivemq.com/blog/mqtt-essentials-part-3-client-broker-connection-establishment/

З'єднання з використанням MQTT починається з того, що клієнт відправляє повідомлення CONNECT брокеру. Тільки клієнт може ініціювати сеанс, і жоден клієнт не може безпосередньо зв'язатися з іншим клієнтом. У відповідь на повідомлення CONNECT брокер завжди буде відсилати CONNACK і код статусу. Після встановлення з'єднання, воно починає працювати.

У табл.1 наведені дані для з’єднання п процедурі CONNECT MQTT.

Поле

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

Опис

clientID

Так

Ідентифікує клієнта не сервері. Кожний клієнт має унікальний ідентифікатор, від 1 до 23 байт UTF-8. 

cleanSession

Ні

0: сервер повинен відновити зв'язок з клієнтом. клієнт і сервер повинні зберегти стан сеансу після відключення;

1: клієнт і сервер повинні відмінити попередній сеанс і почати новий      

username

Ні

Ім’я, що використовується сервером для автентифікації 

password

Ні

пароль

lastWillTopic

Ні

тема (topic) гілки для публікації повідомлення «останньої волі» 

lastWillQos

Ні

рівень QoS (0..2) повідомлення «останньої волі» 

lastWillMessage

Ні

Корисне навантаження (payload) повідомлення «останньої волі»

lastWillRetain

Ні

Чи зберігається повідомлення «останньої волі» після публікації

keepAlive

Ні

Інтервал часу в секундах keep-alive (утримування)

 

При відповіді CONNACK, сервер (брокер) буде повертати код відповіді, які наведені в таблиці 2.

Код відповіді

Опис

0

Успішне з’єднання

1

У з’єднанні відмовлено : неприйнятна версія протоколу MQTT

2

У з’єднанні відмовлено : ідентифікатор клієнта – це правильний UTF-8, однак не дозволений сервером

3

У з’єднанні відмовлено : сервер не досяжний

4

У з’єднанні відмовлено : невірне ім’я користувача чи пароль

5

У з’єднанні відмовлено : клієнт не авторизований для з’єднання