Subscription Options MQTT управляют разными видами доставки
Фотография конкретного исполнения не приложена.
Повторная подписка после reconnect может неожиданно выдать сохранённые значения или вернуть собственные публикации клиента. Эти эффекты регулируются разными options. Нельзя считать один флаг универсальным способом убрать все повторы.
No Local исключает предусмотренную пересылку на соединение с тем же ClientID, что у publisher. Retain Handling задаёт выдачу retained-сообщений при subscribe: всегда, только для новой подписки либо никогда. Retain As Published отдельно управляет сохранением RETAIN flag в соответствующей пересылке.
Для Shared Subscription установка No Local запрещена протоколом. Также Retain Handling не является общим фильтром всех последующих обновлений темы. Смешение этих условий способно скрыть нужные изменения или создать ложное ожидание защиты от повторной команды.
В приёмке проверяют новую и существующую подписку, собственную публикацию и retained state. Сохраняют конкретный options byte и результат SUBACK. Отчёт должен показывать назначение каждого условия. Отсутствие одного старого retained-значения после subscribe не подтверждает, что клиент никогда не получит собственное новое сообщение или повтор полезного события.
Основание — MQTT Version5.0 OASIS Standard07March2019, official os HTML edition, разделы MQTT5.0 3.8.3.1 Subscription Options. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — MQTT Version 5.0, OASIS Standard от 7 марта 2019 года. Поддержка возможностей конкретными broker и client library, дисковое хранение и политика доступа не проверялись. Соединения, подписки, сообщения и настройки рабочих систем не выполнялись; приведены критерии будущей приёмки.