桥接 mqtt 代理 hivemq 和 mosquitto
bridging mqtt brokers hivemq and mosquitto
我正在尝试在同一系统上桥接两个 MQTT 代理,HiveMQ
和 Mosquitto
。 HiveMQ
在端口 1884
上工作,Mosquitto
在 1883
上工作 运行。但是,当我使用 mosquitto_pub
命令发布到端口 1883
的 mosquitto
代理时,它不会显示在端口 1884
上(使用 MQTT.fx
作为客户端订阅端口 1884
)
上的所有主题
这是我只为 mosquitto
代理配置了网桥。
当我也配置 HiveMQ
时,它只在 HiveMQ
命令 window 上显示 unable to connect to Bridge1, disconnected
消息。我已经包含了以下配置。有人请帮助。
在 mosquitto.config
文件中,我在 bridges
下完成了以下操作。
connection hivemq
address 127.0.0.1:1884
start_type automatic
clientid clientno1
notifications true
与此同时,我还编辑了 HiveMQ bridges.xml
文件以读取
<?xml version="1.0" encoding="UTF-8"?>
<bridges xsi:noNamespaceSchemaLocation="http://www.hivemq.com/bridges/bridge.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<bridge>
<connectionName>Bridge1</connectionName>
<addresses>
<address>
<host>localhost</host>
<port>1883</port>
</address>
</addresses>
<clientId>bridgeClient</clientId>
<topicPatterns>
<topicPattern>
<topic>#</topic>
<qos>1</qos>
<direction>both</direction>
<localPrefix>local/</localPrefix>
<remotePrefix>remote/</remotePrefix>
</topicPattern>
</topicPatterns>
<cleanSession>true</cleanSession>
<idleTimeout>10</idleTimeout>
<notificationsEnabled>true</notificationsEnabled>
<tryPrivate>true</tryPrivate>
</bridge>
显示的图像是我在另一个系统上尝试相同过程时的结果。在这里,经纪人被桥接了。与我之前做的相比,唯一的区别是在我原来的系统上没有声明在 1883 上打开 ipv4 侦听套接字。这是问题吗?
您应该只需要在其中一个代理中配置网桥,为两个代理都配置网桥会导致问题,很可能是消息循环
对于您的 mosquitto 配置,您需要将 topic 行添加到您的 mosquitto 网桥,以便它知道向 hive 代理发送(和接收)哪些主题
有关主题指令的完整详细信息可以在 mosquitto.conf 手册页 (http://mosquitto.org/man/mosquitto-conf-5.html) 中找到,但基础知识是:
topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]
双向镜像所有主题
topic # both
桥接应仅在 publisher/client 端设置(在您的情况下为 mosquitto),在 Hivemq(服务器)上保留默认设置应该没问题
尝试更改您的 mosquitto.conf
connection bridge-mosquitto-to-hivemq
address 127.0.0.1:1884
topic room1/# both 2 sensor/ myhouse/
bridge_protocol_version mqttv311
notifications true
cleansession true
try_private true
重启代理后,在 mosquitto 代理上,尝试在下面发布示例消息
mosquitto_pub -t sensor/room1/temperature -m '26.3'
我正在尝试在同一系统上桥接两个 MQTT 代理,HiveMQ
和 Mosquitto
。 HiveMQ
在端口 1884
上工作,Mosquitto
在 1883
上工作 运行。但是,当我使用 mosquitto_pub
命令发布到端口 1883
的 mosquitto
代理时,它不会显示在端口 1884
上(使用 MQTT.fx
作为客户端订阅端口 1884
)
这是我只为 mosquitto
代理配置了网桥。
当我也配置 HiveMQ
时,它只在 HiveMQ
命令 window 上显示 unable to connect to Bridge1, disconnected
消息。我已经包含了以下配置。有人请帮助。
在 mosquitto.config
文件中,我在 bridges
下完成了以下操作。
connection hivemq
address 127.0.0.1:1884
start_type automatic
clientid clientno1
notifications true
与此同时,我还编辑了 HiveMQ bridges.xml
文件以读取
<?xml version="1.0" encoding="UTF-8"?>
<bridges xsi:noNamespaceSchemaLocation="http://www.hivemq.com/bridges/bridge.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<bridge>
<connectionName>Bridge1</connectionName>
<addresses>
<address>
<host>localhost</host>
<port>1883</port>
</address>
</addresses>
<clientId>bridgeClient</clientId>
<topicPatterns>
<topicPattern>
<topic>#</topic>
<qos>1</qos>
<direction>both</direction>
<localPrefix>local/</localPrefix>
<remotePrefix>remote/</remotePrefix>
</topicPattern>
</topicPatterns>
<cleanSession>true</cleanSession>
<idleTimeout>10</idleTimeout>
<notificationsEnabled>true</notificationsEnabled>
<tryPrivate>true</tryPrivate>
</bridge>
显示的图像是我在另一个系统上尝试相同过程时的结果。在这里,经纪人被桥接了。与我之前做的相比,唯一的区别是在我原来的系统上没有声明在 1883 上打开 ipv4 侦听套接字。这是问题吗?
您应该只需要在其中一个代理中配置网桥,为两个代理都配置网桥会导致问题,很可能是消息循环
对于您的 mosquitto 配置,您需要将 topic 行添加到您的 mosquitto 网桥,以便它知道向 hive 代理发送(和接收)哪些主题
有关主题指令的完整详细信息可以在 mosquitto.conf 手册页 (http://mosquitto.org/man/mosquitto-conf-5.html) 中找到,但基础知识是:
topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]
双向镜像所有主题
topic # both
桥接应仅在 publisher/client 端设置(在您的情况下为 mosquitto),在 Hivemq(服务器)上保留默认设置应该没问题
尝试更改您的 mosquitto.conf
connection bridge-mosquitto-to-hivemq
address 127.0.0.1:1884
topic room1/# both 2 sensor/ myhouse/
bridge_protocol_version mqttv311
notifications true
cleansession true
try_private true
重启代理后,在 mosquitto 代理上,尝试在下面发布示例消息
mosquitto_pub -t sensor/room1/temperature -m '26.3'