我们在不同的场所安装了许多本地网关。这些网关将托管一个用于连接所有本地服务的 MQTT 代理。然后需要本地 MQTT 代理将此数据发送到两个远程 MQTT 代理(每个代理由不同的一方托管)。我已阅读有关 Mosquitto 和 VerneMQ 代理的文档,我发现它们一次只允许桥接一个远程服务器。
是否有另一个(开源)代理提供此类功能?如果不是,我们怎么能做到这一点?
我们在不同的场所安装了许多本地网关。这些网关将托管一个用于连接所有本地服务的 MQTT 代理。然后需要本地 MQTT 代理将此数据发送到两个远程 MQTT 代理(每个代理由不同的一方托管)。我已阅读有关 Mosquitto 和 VerneMQ 代理的文档,我发现它们一次只允许桥接一个远程服务器。
是否有另一个(开源)代理提供此类功能?如果不是,我们怎么能做到这一点?
您可以使用 mosquitto 声明许多桥梁。
从mosquitto.conf手册页:
配置网桥
可以使用以下变量配置多个网桥(与其他代理的连接)。
你只有多个块connection
connection test-mosquitto-org
address test.mosquitto.org
cleansession true
topic clients/total in 0 test/mosquitto/org $SYS/broker/
connection foo.broker.org
address 192.168.1.1
topic # both 0
谢谢哈迪尔。同样在我的情况下,我使用了客户端 ID,显然它们需要每个桥块是唯一的:
例如
connection solace.cloud
address <mqtt address>:<port>
remote_username <username>
remote_password <password>
clientid Alpha
try_private false
start_type automatic
topic Nasdaq/ out 0 b1/ ""
topic Nasdaq/ in 0 "" b2/
connection cloudmqtt
cleansession true
address postman.cloudmqtt.com:<port>
remote_username <username>
remote_password <password>
clientid Beta
try_private true
start_type automatic
topic Nasdaq/# out 0
topic Nasdaq/# in 0