MQTT:双向桥发布两次

卡兰·希秀

因此,我设置了两个 MQTT 代理 [例如“A”和“B”](使用云 mqtt 设置),其中“B”桥接到“A”(通过双向桥接)。当我将主题发布到“A”时,它会显示在“A”下,然后显示在“B”下(如预期)。但是,如果我发布到“B”,它会显示在“B”下,然后在“A”下,然后在“B”下会看到重复的发布。是否有一些我需要设置或设置我需要更改以防止这种情况发生的标志?

你是如何启动桥梁的?

您需要为连接定义本地前缀和不同的远程前缀。不要将其与“本地”或“远程”的含义混为一谈,而是将它们作为应该镜像到其他经纪人的那些分支的名称。这可以防止代理一次又一次地循环相同的消息。

假设您的“A”经纪人通过分支订单/命令发送命令,而您的“B”经纪人在家中/传感器保存传感器值

然后,如果您向代理“A”上的 order/command/ 发布消息,您将在代理“B”的同一分支 order/command/ 下看到此消息。

此外,每个可能发布到代理“B”的 home/sensor/ 的传感器值都将被镜像到代理“A”的 home/sensor/

mosquitto.conf:(树莓“A”是 192.168.1.100)

connection raspi-PC
address 192.168.1.110:1883
topic # both 0 order/command/ home/sensor/

然后这将起作用:

client1 : mosquitto_sub -h 192.168.1.110 -t order/command/#
client2 : mosquitto_sub -h 192.168.1.100 -t home/sensor/#
clientA : mosquitto_pub -t order/command/message -m "Hello from A"
clientB : mosquitto_pub -t home/sensor/temp -m "22.5C"

client1 --> order/command/message/"Hello from A"

client2 --> home/sensor/temp/"22.5C"

您会看到 client1 和 client2 是代理“A”和“B”的交叉订阅者,它们获取所有分支和子分支消息,但它们不一定是代理本地的。

在 clientA 和 clientB 上,我使用本地客户端将消息发送到本地代理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

快速合并发布两次

来自分类Dev

MassTransit故障消息发布两次

来自分类Dev

jQuery模态形式发布两次

来自分类Dev

如何在两次单击中双向旋转图标?

来自分类Dev

防止通过双击两次执行jQuery发布请求

来自分类Dev

单击提交按钮两次以将表单发布

来自分类Dev

使用处理程序两次发布操作

来自分类Dev

Delphi RTTI,已发布的属性出现两次

来自分类Dev

单击提交按钮两次以将表单发布

来自分类Dev

猫鼬不能两次发布数据

来自分类Dev

Chrome bug asp.net updatepanel发布两次

来自分类Dev

Web.config转换在发布时运行两次

来自分类Dev

使用处理程序两次发布操作

来自分类Dev

双向引用表行进行两次重复预订的最佳方法

来自分类Dev

闪亮两次

来自分类Dev

两次相加

来自分类Dev

在两个接口之间建立双向桥接

来自分类Dev

Django Admin-FORCE_SCRIPT_NAME发布时会两次附加到URL

来自分类Dev

为什么版本在发布时在人工制品名称中出现两次?

来自分类Dev

如果使用AJAX渲染部分视图,则Ajax.BeginForm将发布两次

来自分类Dev

如果使用AJAX渲染部分视图,则Ajax.BeginForm将发布两次

来自分类Dev

Facebook(在Android上)Open Graph在活动日志上发布两次

来自分类Dev

两次被称为两次的角度承诺

来自分类Dev

放开两次后倒回两次

来自分类Dev

PHP MYSQL返回结果两次(两次)

来自分类Dev

如果两次符合IF条件,则选择两次

来自分类Dev

相同的输入两次不输入两次

来自分类Dev

CFTHREAD执行两次

来自分类Dev

查询执行两次