Как клиент Paho может узнать состояние мостовых подключений? - PullRequest
2 голосов
/ 25 октября 2019

У меня есть один удаленный брокер (cloudmqtt) и один локальный брокер на моей плате. Оба связаны как мост. У меня есть один клиент Paho, подключенный к местному брокеру. Я хочу знать статус моста, чтобы опубликовать сообщение. Я знаю, что могу публиковать сообщения локальному брокеру, не зная его статуса, и брокер позаботится об этом. Но я хочу спроектировать свое приложение так, как я буду публиковать сообщения только в том случае, если для моста установлено значение Up.

Я использую клиентскую библиотеку paho в C и mosquitto broker v1.6.

Ниже приведен мой файл conifg:

pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S
log_type all

user root

connection cloudmqtt 
address xxxx.cloudmqtt.com:13287
remote_username xxxxxxx
start_type automatic
try_private true
remote_password xxxxxx
notifications true
notification_topic /broker/connection/state 
restart_timeout 20
max_queued_messages 0
topic # both 2

1 Ответ

2 голосов
/ 25 октября 2019

Короткий ответ: вы не можете на чистом уровне протокола MQTT или специфичны для клиента Paho (и вас не должно волновать причины, о которых вы упомянули).

Теперь, сказав все, что вы можетефактически получают сообщения о состоянии моста из дерева тем $SYS/broker/connection/<remote-clientid>/# на комаре. Для этого вам необходимо установить флаг notification true в конфигурации моста. Документ для настройки мостов: здесь

...