Подключение URI локального брокера MQTT
В настоящее время у меня есть два брокера MQTT, оба работают отлично. Одним из них является Raspberry Pi в моей локальной сети. Другой - это удаленный брокер, размещенный на CloudMQTT.
Цель состоит в том, чтобы синхронизировать обоих брокеров друг с другом. Самым простым решением для этого, конечно, является мост, но у меня возникли некоторые проблемы с правильной настройкой моста.
Как вы можете видеть на изображении ниже, когда я пытаюсь настроить мост в CloudMQTT, он запрашивает "Connection uri". Для удаленного брокера это будет mqtt://username:password@m20.cloudmqtt.com:1883
, но я не могу понять, как это сделать для местного брокера.
Насколько я знаю, вы можете подключиться к вашей локальной сети только тогда, когда у вас есть статический IP и порты, перенаправленные на Raspberry Pi, так как я смогу обойти это? Два брокера должны поддерживать постоянное соединение TCP открытым, но удаленный брокер не может открыть его сам. Разве местный брокер не сможет открыть это соединение? Если да, то как мне синхронизировать двух брокеров?
Любая помощь приветствуется, большое спасибо за вашу помощь заранее!
Редактировать:
Это мой полный файл /etc/mosquitto/mosquitto.conf:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
connection CloudMQTT-Bridge
topic # both 2 local/testing remote/testing
bridge_protocol_version mqttv311
address m20:cloudmqtt.com:17001
remote_username jcw******
remote_password p-fO*****
remote_clientid RaspberryPiBroker
1 ответ
Вы можете создавать мосты с помощью mosquitto, раздел "Настройка мостов" на странице руководства охватывает все параметры, но вам понадобятся следующие основные принципы:
connection cloudMQ-Bridge
address m20.cloudmqtt.com
remote_username user
remote_password password
remote_clientid clientid
topic # in 2
Хитрый бит - это строка темы в конце, которая контролирует, как темы должны отображаться между двумя брокерами. Вы должны быть осторожны, чтобы не создавать петли.
В этом примере все темы отображаются от удаленного посредника к локальному посреднику в QOS 2 без переотображения тем. Пожалуйста, внимательно прочитайте раздел руководства, посвященный сопоставлению тем, так как ошибки легко допустить.