MQTT:两道桥出版两次

问题描述 投票:0回答:1
因此,我设置了两个MQTT经纪人[说'a'和'b'](使用云MQTT的设置),其中'b'被桥接到'a'(通过两道桥)。当我将主题发布到“ A”下显示在“ A”下的主题时,然后显示在“ B”下(如预期)。但是,如果我发布到“ b”下显示在“ b”下,则在“ a”下显示,则在“ b”下看到了重复的发布。我需要设置一些标志或需要更改以防止这种标志吗?

mqtt
1个回答
1
投票
您需要为连接定义本地前缀和其他远程前缀。不要将其与“本地”或“远程”的含义混合在一起,而是将它们作为应该反映给其他经纪人的分支的名称。 这样可以防止经纪人一次又一次地循环相同的消息。

LETS说您的“ A”经纪人通过分支订单/命令发送命令 和您的“ B”经纪人在家中保持传感器值

然后,如果您在Broker“ A”上发布消息/命令/命令/,您将在Brok'B“。

此外,每个传感器价值都可以发布给家庭/传感器/在经纪“ b”的传感器/传感器,将镜像为家庭/传感器/在经纪人/经纪人“ A”

Mosquitto.conf:( Raspberry“ A”是192.168.1.100)

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

then这将起作用:

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 a a a”
client2-> home/sensor/temp/“ 22.5c”

您看到客户端和客户端2是经纪人“ A”和“ B”的交叉订阅者,他们收到了所有分支机构和子分支消息,但它们不一定是经纪人本地的。
在客户端和客户室中,我使用本地客户端将消息发送给本地经纪人。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.