桥接mqtt代理hivemq和MOSQUITO

桥接mqtt代理hivemq和MOSQUITO,mqtt,bridge,mosquitto,hivemq,Mqtt,Bridge,Mosquitto,Hivemq,我正在尝试在同一系统上桥接两个MQTT代理,HiveMQ和MosquittoHiveMQ正在端口1884上工作,Mosquitto正在1883上运行。但是,当我使用mosquitto_pub命令在端口1883发布到mosquitto代理时,它不会显示在端口1884(使用MQTT.fx作为客户端订阅端口1884上的所有主题) 这是因为我只配置了带有桥接器的mosquitto代理。 当我也配置了HiveMQ时,它只在HiveMQ命令窗口上显示无法连接到Bridge1、断开连接的消息。我已经包括了下面

我正在尝试在同一系统上桥接两个MQTT代理,
HiveMQ
Mosquitto
HiveMQ
正在端口
1884
上工作,
Mosquitto
正在
1883
上运行。但是,当我使用
mosquitto_pub
命令在端口
1883
发布到
mosquitto
代理时,它不会显示在端口
1884
(使用
MQTT.fx
作为客户端订阅端口
1884
上的所有主题)

这是因为我只配置了带有桥接器的
mosquitto
代理。 当我也配置了
HiveMQ
时,它只在
HiveMQ
命令窗口上显示
无法连接到Bridge1、断开连接的消息。我已经包括了下面的配置。有人请帮忙

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>

布里奇1
本地服务器
1883
bridgeClient
#
1.
二者都
本地的/
遥远的/
真的
10
真的
真的


显示的图像是我在另一个系统上尝试相同的过程时显示的。在这里,经纪人之间架起了桥梁。与我之前所做的相比,唯一的区别是在我最初的系统上没有声明说在1883年打开ipv4侦听套接字。这就是问题所在吗?

您应该只需要在其中一个代理中配置网桥,为这两个代理配置网桥将导致问题,很可能是消息循环

对于mosquitto配置,您需要向mosquitto桥接器添加一个主题行,以便它知道要向配置单元代理发送(和接收)哪些主题

有关topic指令的完整详细信息可以在mosquitto.conf手册页()中找到,但基本内容如下:

主题模式[[out | in | both]qos级别]本地前缀远程前缀]

从两个方向镜像所有主题

topic # both

您应该只需要在其中一个代理中配置网桥,为这两个代理配置网桥将导致问题,很可能是消息循环

对于mosquitto配置,您需要向mosquitto桥接器添加一个主题行,以便它知道要向配置单元代理发送(和接收)哪些主题

有关topic指令的完整详细信息可以在mosquitto.conf手册页()中找到,但基本内容如下:

主题模式[[out | in | both]qos级别]本地前缀远程前缀]

从两个方向镜像所有主题

topic # both

桥接应该只在发布服务器/客户端设置(在您的情况下是MOSQUITO),在Hivemq(服务器)上保留默认设置应该可以

尝试对mosquito.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'

桥接应该只在发布服务器/客户端设置(在您的情况下是MOSQUITO),在Hivemq(服务器)上保留默认设置应该可以

尝试对mosquito.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'

我只在
mosquitto
上配置了网桥,现在还在配置文件的主题行中添加了网桥。仍然没有桥接。MOSQUITO输出是否显示有关桥接的任何信息?根本没有。我不知道它是否已经配置好了。两者完全分开工作,但是
mosquitto
没有显示任何关于桥的信息。我有点困惑。当我尝试通过
HiveMQ
而不是
mosquitto
配置网桥时,它说
尝试连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后
连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后立即更改为
网桥“mosquitto”断开的。30秒后重新启动网桥
如果mosquitto没有说明网桥的任何内容,请尝试以
mosquitto-v
的形式启动网桥,以启用所有日志记录。我只在
mosquitto
上配置了网桥,现在还在配置文件的主题行中添加了网桥。仍然没有桥接。MOSQUITO输出是否显示有关桥接的任何信息?根本没有。我不知道它是否已经配置好了。两者完全分开工作,但是
mosquitto
没有显示任何关于桥的信息。我有点困惑。当我尝试通过
HiveMQ
而不是
mosquitto
配置网桥时,它说
尝试连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后
连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后立即更改为
网桥“mosquitto”断开的。30秒后重新启动网桥
如果mosquitto没有说明网桥的任何内容,请尝试以
mosquitto-v
的形式启动网桥,以启用所有日志记录。我只在
mosquitto
上配置了网桥,现在还在配置文件的主题行中添加了网桥。仍然没有桥接。MOSQUITO输出是否显示有关桥接的任何信息?根本没有。我不知道它是否已经配置好了。两者完全分开工作,但是
mosquitto
没有显示任何关于桥的信息。我有点困惑。当我尝试通过
HiveMQ
而不是
mosquitto
配置网桥时,它说
尝试连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后
连接到与目标本地主机连接的网桥“mosquitto”:1883
,然后立即更改为
网桥“mosquitto”断开的。30秒后重新启动网桥
如果mosquitto没有对网桥做任何说明,请尝试以
mosquitto-v
的方式启动网桥以启用所有日志记录。