Max_keepalive Mosquitto: MQTT v5 и старые клиенты реагируют по-разному
Фотография конкретного исполнения не приложена.
MQTT v5 позволяет брокеру сообщить Server Keep Alive и изменить допустимый интервал клиента. Для MQTT v3.1.1 и v3.1 такого механизма нет. Поэтому одинаковая политика max_keepalive способна дать различный результат подключения у устройств с разными версиями протокола, хотя они используют тот же адрес и credentials.
Сохранённое руководство описывает отказ старым клиентам, запросившим интервал выше предела, с CONNACK reason «identifier rejected». Такой ответ не следует без проверки объяснять только конфликтом Client ID. Для диагностики сохраняют версию протокола, запрошенный keepalive, эффективный предел и точный результат подключения.
Нулевой предел допускает клиентский keepalive=0, то есть отсутствие соответствующих проверок активности MQTT. Это меняет обнаружение неработающего соединения. При этом keepalive в любом случае относится к обмену протокола, а не к гарантии свежего измерения датчика: клиент способен поддерживать канал, не публикуя актуальные данные процесса.
В приёмке проверяют предусмотренные версии MQTT с рабочим и превышающим предел интервалами. Отдельно проверяют прикладной контроль возраста измерений. Успешный CONNECT или живое TCP-соединение не доказывают одинаковую политику для всех версий и наличие свежей телеметрии у конечного потребителя.
Основание — Eclipse Mosquitto official unversioned documentation snapshot; Download index observed 2.1.2, разделы max_keepalive. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Реальный брокер, его сборка, плагины и сеть не испытывались. Изменения конфигурации, учётных записей и прав не выполнялись; поддержку параметров проверяют по установленной версии.
Запросы отправляются на наш e-mail из вашей почтовой программы.
