Модуль 2. Состояния и гарантии · Урок 4 из 7

Урок 4. QoS, Last Will и состояния online/offline

Изучаем, что обещают уровни доставки и где остаются риски.

Чему вы научитесь

Различать QoS 0/1/2, повторные сообщения и уведомление об аварийном отключении.

Три уровня QoS

QoS 0 — отправка без подтверждения уровня MQTT, «не более одного раза». QoS 1 предусматривает подтверждение и возможную повторную доставку, «как минимум один раз». QoS 2 использует более сложное согласование и обеспечивает «ровно один раз» в рамках предусмотренного обмена между MQTT-сторонами.

QoS 2 не гарантирует, что физическое реле выполнило команду: транспорт сообщения и результат работы исполнительного механизма — разные уровни. Для реального действия нужна обратная связь о состоянии.

Last Will and Testament

При установлении соединения клиент может зарегистрировать в брокере специальное Will-сообщение. Если соединение завершится неожиданно по условиям протокола, брокер публикует Will, например home/bridge/availability = offline. При штатном отключении клиента Will обычно не публикуется.

Will может быть retained, если это правильно соответствует модели состояний. Но он не заменяет самостоятельного контроля всех датчиков за шлюзом.

Сеансы и потери сети

Если подписчик временно не в сети, дальнейшее поведение зависит от параметров сессии, версии MQTT, QoS и политики брокера. Нельзя утверждать, что любой офлайн-подписчик автоматически получит все пропущенные сообщения. В нашем симуляторе намеренно нет устойчивых сессий и очередей.

Практическая работа

Заполните таблицу QoS 0/1/2: подтверждение, возможные повторы и ограничения. Затем объясните, почему даже QoS 2 требует контроля состояния замка или реле.

Составьте схему: клиент зарегистрировал Will «offline»; аварийное отключение; публикация брокера; отображение в системе.

Самопроверка: сформулируйте результат своими словами, а затем пройдите вопросы ниже. Если устройство или программа не доступны, выполните задание на бумаге или в учебном тренажёре.

Проверьте себя

Контрольные вопросы

Ответьте на все вопросы. При ошибке изучите пояснение и попробуйте ещё раз. Все задания бесплатны.

1. При каком QoS возможна повторная доставка MQTT-сообщения?
2. Гарантирует ли QoS 2 фактическое включение светильника?

Правильных ответов: 0 из 2

Урок завершён?

Повторите ключевые идеи и убедитесь, что выполнили практическое задание.