1

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

这是我只为mosquitto代理配置了一个网桥。当我也配置时HiveMQ,它只在命令窗口上显示一条unable to connect to Bridge1, disconnected消息。HiveMQ我已经包含了下面的配置。有人请帮忙。

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 侦听套接字。这是问题吗?

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

4

2 回答 2

0

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

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

有关主题指令的完整详细信息可以在 mosquitto.conf 手册页 ( http://mosquitto.org/man/mosquitto-conf-5.html ) 中找到,但基础是:

主题模式[[[出| 在| 两者] qos-level] local-prefix remote-prefix]

双向镜像所有主题

topic # both
于 2015-06-04T09:21:01.913 回答
0

桥接只应在发布者/客户端(在您的情况下为 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'
于 2016-06-03T08:22:15.747 回答