MQTT Как узнать статус брокера - PullRequest
0 голосов
/ 22 мая 2018

В веб-приложении с MQTT на python (использующем paho-mqtt lib) я хотел бы знать, есть ли способ получить статус брокера в реальном времени, потому что единственный способ, который я найду, - это сохранить переменную "rc "в метод on_connect, но это больше похоже на состояние клиента / соединения.

EDIT 1: после прочтения документации москитного брокера я обнаружил, что вы можете подписаться на '$SYS/broker/connection/#', который должен вернуть вам 1, еслисоединение установлено и 0, если оно идет вниз.Однако, когда я делаю:

subscribe.callback(self.message_callback, '$SYS/broker/connection/#', port = port, hostname=broker, auth=authentication, protocol=client.MQTTv31, tls=TLS)

невозможно получить полезную нагрузку и разделить это сообщение, хотя я делаю точно такую ​​же команду для получения сообщений от моих датчиков, за исключением того, что тема - '#', и она работает отлично.

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 23 мая 2018

Невозможно опросить состояние соединения с брокером с клиента.

Обратный вызов on_disconnect следует вызывать при разрыве соединения с брокером.

Это следует начинать по истечении времени ожидания активности, а также в результате сбоя публикации (если вы пытаетесь опубликовать данные до истечения времени ожидания).

Также rc от вызова ккоманда publish укажет, разорвано ли соединение.

...