Убедитесь, что местный москитный брокер 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 в зависимости от того, активно ли соединение. Это происходит как на удаленном, так и на локальном брокере.

Другие вопросы по тегам