如何解决自助桥接Mosquitto MQTT经纪人
我正在尝试自动桥接蚊子经纪人。让我解释一下我正在做的情况。
我们的应用程序分为两部分。其中一个与处理数据有关,另一个与Modbus服务有关,该服务从PLC设备读取数据。 应用程序的处理部分能够处理多个客户端。我想为同一客户设置测试和生产租户。其背后的原因是,这将使我们的客户可以自由地与测试租户一起玩,因为生产不会受到此影响。
测试客户端从代理发送和接收数据。重要的是我们不要将测试租户的数据发送到我们的modbus服务。主题遵循以下格式。
company/service/test/+
(用于测试客户端)和company/service/prod/+
(用于生产客户端)。
modbus服务以company/service/prod/+
格式将数据发送到同一代理。
我是否有办法将这个主题重新映射到company/service/test/+
,以便测试和生产客户端都可以从代理接收数据。
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.s。以规范中的开头/
开头的主题虽然很有效,但这确实是一个坏主意,因为当您需要共享订阅时会破坏事情,并在每个主题的开头插入不必要的null。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。