Что происходит, когда в MQTT нет подписчика на тему?

12

Ситуация следующая:

Есть клиент, издатель, он не подписан ни на одну тему. Этот клиент имеет свою собственную тему и регулярно публикует данные. Но нет других клиентов , которые подписаны на эту тему.

Таким образом, этот бедный и одинокий клиент может рассматриваться как ненормальный ( Глава 5.4.8 ).

Реализации сервера могут отслеживать поведение клиента для обнаружения потенциальных инцидентов безопасности. Например:

  • [...]

  • Отправка недоставленных сообщений (нет подписчиков на темы)

Он не имеет представления о том, сколько клиентов подписалось на его тему. Поэтому он не знает, что его можно считать клиентом с ненормальным поведением.

Так что же будет с таким клиентом, зависит от реализации сервера? Каковы практики, он должен быть просто отключен, но тогда он не попытается восстановить?

Бенс Кауликс
источник

Ответы:

9

Как вы говорите, это зависит от реализации сервера, особенно от QoS передаваемого сообщения, если оно «хотя бы один раз».

IMHO MQTT - это система вещания, а не сквозной протокол между двумя машинами, поэтому нам абсолютно не нужен подписчик каждый раз, когда мы создаем тему.

Я могу опубликовать что угодно (температура, ...) и через два месяца внедрить что-то, что прочитает это, или даже удалить это и подумать о чем-то другом, пока мой датчик все еще публикует данные.

Goufalite
источник