#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. Я не думаю, что подобное циклическое соединение является правильным решением, вам будет лучше использовать совершенно отдельный тестовый брокер.