MQTT topic matching: похожие имена могут обозначать разные темы
Фотография конкретного исполнения не приложена.
Клиент способен успешно подписаться и не получать ожидаемые измерения из-за одного символа. Для MQTT имя темы является частью протокольного контракта. Его нельзя автоматически нормализовать по привычным правилам файловых путей или веб-адресов.
MQTT 5 задаёт case-sensitive matching и запрещает серверу произвольную normalization. Начальный или конечный slash создаёт отличающееся имя, а соседние separators образуют пустой level. Поэтому line/a, /line/a и line/a/ нельзя считать одним destination без явного прикладного преобразования.
Wildcards разрешены в Topic Filters, но не в публикуемом Topic Name. Отдельно filters с первым wildcard не покрывают names, начинающиеся с dollar. Общая подписка # поэтому не заменяет предусмотренный отдельный filter для соответствующего служебного пространства.
В приёмке сопоставляют точные имена publisher и filters subscriber, включая case и пустые levels. Проверяют положительные и соседние отрицательные примеры. Отчёт должен показывать реальное matching. Успешный SUBACK и визуально похожая строка не подтверждают, что публикация соответствует нужной подписке и будет направлена обработчику.
Основание — MQTT Version5.0 OASIS Standard07March2019, official os HTML edition, разделы MQTT5.0 4.7 Topic Names and Topic Filters. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — MQTT Version 5.0, OASIS Standard от 7 марта 2019 года. Поддержка возможностей конкретными broker и client library, дисковое хранение и политика доступа не проверялись. Соединения, подписки, сообщения и настройки рабочих систем не выполнялись; приведены критерии будущей приёмки.
Запросы отправляются на наш e-mail из вашей почтовой программы.