簡體   English   中英

自橋接 Mosquitto MQTT 代理

[英]Self bridging Mosquitto MQTT broker

我正在嘗試自橋接蚊子經紀人。 讓我解釋一下我這樣做的場景。

我們的應用程序有 2 個部分。 一個與處理數據有關,另一個是從 PLC 設備讀取數據的 modbus 服務。 應用程序的處理部分能夠處理多個客戶端。 我想為同一個客戶端設置測試和生產租戶。 這背后的原因是,這將使我們的客戶可以自由地與測試租戶一起玩,因為生產不會受到此影響。

測試客戶端從代理發送和接收數據。 重要的是我們不要將測試租戶的數據發送到我們的 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

請記住,我有一個單一的代理實例,並且我正在嘗試對此進行自我橋接。

在我上面的配置中,重新映射不會發生,因為它不是一個有效的前綴。

有人可以幫我弄清楚如何解決這個問題嗎?

問題是輸出主題映射末尾的+

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/+任何消息的無限發布循環

ps 使用前導/開始主題,而在規范中有效是一個非常糟糕的主意,因為當您開始需要共享訂閱並在每個主題的開頭注入一個不需要的空值時,它會破壞事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM