自桥接MOSQUITO MQTT代理

自桥接MOSQUITO MQTT代理,mqtt,mosquitto,bridging,Mqtt,Mosquitto,Bridging,我正试图与一位莫斯基托经纪人进行自我沟通。让我解释一下我正在做这件事的场景 我们的应用程序有两个部分。一个与处理数据有关,另一个是从PLC设备读取数据的modbus服务。 应用程序的处理部分能够处理多个客户端。我想为同一客户机设置测试和生产租户。这背后的原因是,这将使我们的客户可以自由地与测试租户进行交流,因为生产不会受到影响 测试客户端既从代理发送数据,也从代理接收数据。重要的是,我们不要将测试租户的数据发送到我们的modbus服务。主题遵循以下格式 company/service/test/

我正试图与一位莫斯基托经纪人进行自我沟通。让我解释一下我正在做这件事的场景

我们的应用程序有两个部分。一个与处理数据有关,另一个是从PLC设备读取数据的modbus服务。 应用程序的处理部分能够处理多个客户端。我想为同一客户机设置测试和生产租户。这背后的原因是,这将使我们的客户可以自由地与测试租户进行交流,因为生产不会受到影响

测试客户端既从代理发送数据,也从代理接收数据。重要的是,我们不要将测试租户的数据发送到我们的modbus服务。主题遵循以下格式

company/service/test/+
用于测试客户端,而
company/service/prod/+
用于prod客户端

modbus服务以
公司/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/+


p、 在规范中有效的情况下,以一个前导的
/
开始主题是一个非常糟糕的主意,因为当您开始需要共享订阅时,它会破坏一切,并在每个主题的开头注入一个不必要的空值。

非常感谢您帮助我重新映射。这是我肯定错过的谜题的一部分。你也能帮我想一想如何在mosquitto经纪人之间建立自我沟通吗。我在问题中分享的配置部分是否足以建立一个自桥接。提前谢谢。我不认为像这样的环回桥接是正确的解决方案,运行一个完全独立的测试代理会做得更好。