Убедитесь, что местный москитный брокер MQTT соединен с test.mosquitto.org
У меня есть локальный (OSX 11) москитный брокер (1.4.7), работающий со следующим конфигом:
connection test
address test.mosquitto.org
topic in_topic in 0
topic out_topic out 0
try_private false
notifications false
bridge_attempt_unsubscribe true
Я получил форму настроек conf здесь: соедините локального москита с облачным брокером (спасибо)
У меня сейчас 3 терминала.
A: подписался на test.mosquitto.org напрямую, используя скрипт ruby и ruby-mqtt
,
B: подписан на местного брокера с mosquitto_sub -t in_topic
C: публикуется с помощью этой команды: mosquitto_pub -h test.mosquitto.org -t in_topic -m "hello world1"
Теперь, когда я делаю это, я получаю ответ в А и В, что заставляет меня думать, что мое мостовое соединение работает. Однако, если я уроню -h test.mosquitto.org
Я не получаю сообщение от А. Таким образом, сообщение будет отправлено только этому брокеру (test.mosquitto.org), если я включу -h
вариант.
С другой стороны, если я остановлю местного москитного брокера, а затем выполню ту же команду, включая -h
вариант, то A все еще получает сообщение, а B нет. B фактически даже не запускается, поскольку в соединении отказано, поскольку локальный посредник не работает.
Итак, мой вопрос: эта конфигурация фактически устанавливает, что брокеры соединяются? Я не уверен.
Обновление: Как указал hardillb, моя ошибка заключалась в том, что тема, которую я использовал для публикации, не была настроена для публикации другому посреднику. Когда я обновил конф topic in_topic out 0
Мне удалось получить сообщение непосредственно от брокера test.mosquitto.org без включения -h test.mosquitto.org
другими словами. Сообщение распространяется на основе конфигурации.
Документацию о том, что я ошибся, можно найти в разделе мостов здесь: http://mosquitto.org/man/mosquitto-conf-5.html
2 ответа
Вы не получите ничего в терминале A от запуска следующего
mosquitto_pub -t in_topic -m "hello world1"
Потому что ваш мост настроен только на пересылку out_topic
от локального брокера на удаленный (test.mosquitto.org)
topic out_topic out 0
Я бы изменил ваш конфиг, если вы можете:
notifications true
Это приведет к публикации в состоянии $SYS/broker/connections// - либо 1, либо 0 в зависимости от того, активно ли соединение. Это происходит как на удаленном, так и на локальном брокере.