mqtt - 如何在 mqtt mosquitto 中发布从订阅经纪人获取的数据?
问题描述
我在不同的两个设备中有 MQTT Broker (Mosquitto)。他们在工作。我在他们之间架起了一座桥梁。我可以使用 pub_mosquitto 将数据从一个发布到另一个。我想从互联网代理(broker.hivemq.com)中的任何主题获取数据,例如http://www.mqtt-dashboard.com/
我可以从该网站代理中的任何主题获取数据,但我无法将获取的数据发布到另一个我的经纪人同时。我想使用我的经纪人 pub/sub。我的经纪人将从任何经纪人那里获取数据并将其发布到我的桥接经纪人。我怎样才能做到这一点 ?
我在下面画并写道:
解决方案
MQTT 网桥可以配置为以多种方式工作
- 获取本地消息并将它们转发到远程代理
- 获取远程消息并将它们转发到本地代理
- 做前面的两个语句
例如蚊子
topic # out // local to remote
topic # in // remote to local
topic # both // bridge in both directions
有关如何配置 mosquitto 网桥的完整详细信息,请参见此处的手册页
可以桥接哪些主题的唯一限制是基于本地代理用来向远程代理进行身份验证的用户的正常 ACL。
要实现您想要的,您需要创建 2 个桥,一个位于 Broker 1 和 Broker 2 之间的桥,其方向应为both
. 这可以在 Broker 1 或 Broker 2 的配置中设置(但不能同时在两者上)。
其次,在代理 1 上,您可以创建到 HiveMQ 代理的桥接。这可能应该有一个主题映射行,如:
topic temperature in
这将获取发布到 HiveMQ 代理的任何消息并将它们桥接到代理 1,然后将它们桥接到代理 2
推荐阅读
- sql - Rails 加入查询被杀死或太慢。请推荐创建查询的正确方法
- c++ - 以下代码中可能存在赛车情况吗?
- javascript - 如何迭代数组 ini18next 翻译 ejs
- python - 如何在外部覆盖内部方法功能
- mysql - 显示使用 if conding 连接两个表的数据透视表数据
- python - 如何根据包含列名的字段从列中获取值?
- react-native - 为什么我可以添加但不能从集合中删除元素
- java - 如何访问会话属性 ArrayList 中的元素
在 JSP 中 - sql - 有没有办法授予对尚不存在(或重新创建)的表的权限?
- angular - 如何以角度访问组件模板中的服务变量