Самонастраивающийся Mosquitto MQTT брокер

#mqtt #mosquitto #bridging

#mqtt #mosquitto #мостирование

Вопрос:

Я пытаюсь самонастраивать брокера mosquitto. Позвольте мне объяснить сценарий, для которого я это делаю.

У нас есть 2 части нашего приложения. Один из них связан с обработкой данных, а другой — это служба modbus, которая считывает данные с устройств PLC. Обрабатывающая часть приложения способна обрабатывать несколько клиентов. Я хочу настроить тест и производственный клиент для одного и того же клиента. Причина этого заключается в том, что это дало бы нашим клиентам возможность поиграть с тестовым клиентом, поскольку это не повлияет на производительность.

Тестовый клиент как отправляет, так и получает данные от брокера. Важно, чтобы мы не отправляли данные тестового клиента в нашу службу modbus. Темы соответствуют следующему формату.

company/service/test/ для тестового клиента и company/service/prod/ для клиента prod.

Служба modbus отправляет данные тому же брокеру в формате company/service/prod/ .

Есть ли у меня способ переназначить эту тему company/service/test/ , чтобы клиенты test и prod могли получать данные от брокера.

 address 127.0.0.1:41888
topic /company/values/prod/  in 2   
topic /company/values/prod/  out 2 "" /company/values/test/ 
remote_clientid test
remote_username mqttuser
remote_password broker-123
  

Помните, что у меня есть единственный экземпляр брокера, и я пытаюсь самостоятельно подключиться к этому.

В моей приведенной выше конфигурации переназначение не происходит, потому что это недопустимый префикс.

Может кто-нибудь, пожалуйста, помочь мне понять, как подойти к этому?

Ответ №1:

Проблема заключается в том, что в конце отображения темы вывода в

 topic /company/values/prod/  out 2 "" /company/values/test/ 
  

Вы хотите

 topic   out 2 /company/values/prod/ /company/values/test/
  

Это удалит /company/values/prod/ и заменит его на /company/values/test/

Вы также хотите удалить первую строку темы ( topic /company/values/prod/ in 2 ), поскольку это приведет к бесконечному циклу публикации для любого сообщения, опубликованного в /company/values/prod/

p.s. начинать темы с начала / , пока они действительны в спецификации, — ДЕЙСТВИТЕЛЬНО плохая идея, поскольку это нарушает порядок, когда вам нужны общие подписки, и вводит ненужный null в начало каждой темы.

Комментарии:

1. огромное спасибо за помощь в переназначении. Это одна часть головоломки, которую я определенно пропустил. Можете ли вы также помочь мне разобраться, как самостоятельно соединить mosquitto broker. Раздел конфигурации, которым я поделился в вопросе, будет ли этого достаточно для создания самостоятельного моста. Заранее благодарю вас.

2. Я не думаю, что подобное циклическое соединение является правильным решением, вам будет лучше использовать совершенно отдельный тестовый брокер.