Topic Alias MQTT5 после переподключения шлюза

Запросить

После обрыва сети шлюз восстанавливает соединение, но публикации с сокращённым указанием темы начинают вызывать ошибки. Один возможный предмет проверки — жизненный цикл Topic Alias. Эта оптимизация относится к конкретному сетевому соединению и не должна восприниматься как постоянный справочник имён тем, переживающий любой reconnect.

Topic Alias в пределах соединения. Соединение A; Таблица псевдонимов A. После переподключения; Новая таблица.
Псевдонимы привязаны к конкретному соединению.

Уточнить используемую оптимизацию

OASIS MQTT5 ограничивает действие отображений Topic Alias временем сетевого соединения. (OASIS — MQTT Version5.0, Standard2019-03-07) Запишите, выполняет ли управление псевдонимами библиотека автоматически или это делает код приложения. От этого зависит место исправления и состав доступной диагностики, которую нужно сохранить.

Не смешивайте alias с идентификатором устройства или темы в прикладной базе. Его назначение — представление MQTT публикации на данном участке обмена. Один и тот же числовой псевдоним в другом соединении не доказывает связь с прежним полевым датчиком.

Зафиксировать исходную последовательность

На учебном клиенте сохраните установление соединения и первые публикации с известными темами. Проверьте согласованные возможности сторон. Затем найдите, как создаётся отображение и когда клиент начинает использовать его в последующих сообщениях. Не выводите это только из сокращённого вида лога приложения.

Используйте две различимые темы и собственные контрольные значения. Так можно заметить не только явный отказ, но и ошибочную маршрутизацию при неверном состоянии клиента. Приёмник должен связывать публикацию с нужной физической точкой независимо от оптимизации длины заголовка.

Проверить новое соединение

Воспроизведите поддерживаемое переподключение без изменения других параметров. Сравните первые сообщения после него с исходной последовательностью. Ранее созданное отображение не должно использоваться как уже известное новой стороне без предусмотренного установления в новом соединении.

Отдельно проверьте продолжение сеанса, если оно поддерживается. Сохранение MQTT session state не следует произвольно распространять на таблицу alias: у разных механизмов разные границы жизни. Именно это различие должно быть отражено в коде клиента или обеспечено проверенной библиотекой.

Подтвердить исправление на рабочем цикле

После обновления клиента повторите несколько штатных обрывов на стенде и проверьте обе темы. Сохраните ошибки протокола и итоговые прикладные записи. Устранение исключения в журнале недостаточно, если данные начали попадать в неправильный объект приложения.

В эксплуатационной записи укажите версию библиотеки и проверенный сценарий восстановления. Для хозяйства результатом является воспроизводимый возврат публикаций после потери сети, а не обязательное использование оптимизации любой ценой. Если поддержка не подтверждена, проект выбирает документированный совместимый режим и сохраняет правильную идентичность передаваемых данных.

Все разборы