使用 Mosquitto brokier 从多个服务器接收 MQTT
Receive MQTT from multiple servers using Mosquitto brokier
我有三个虚拟机(VirtualBox,Ubuntu 18.04)。所有这些都带有 Mosquitto 代理(默认配置 localhost:1883)。两个 VM 是具有私有 IP 的 PUB,一个“服务器”是一个 SUB(通过 DHCP -bridged- 分配)。我有的是:
VM1 (PUB) [192.168.1.66]
VM (SUB) [192.168.1.55]
VM2 (PUB) [192.168.1.74]
想法是 SUB 从所有 PUB 接收 MQTT,但是,只有 MQTT 客户端配置如下
VM1 [192.168.1.66:1883] --> VM [192.168.1.66:1883] <-- VM2 [192.168.1.74:1883]
因此,SUB 只会接收来自 VM1 的消息,而不会接收来自 VM2 和其他 VM (PUB) 的消息。如何配置 mosquitto 和 SUB 的客户端以接收来自所有 PUB 的消息?
一个 MQTT 客户端实例只能连接到一个 MQTT Broker。
您有 2 个选择。
运行 3 台机器中的任何一台上只有一个代理,让所有发布客户端只向该代理发布,订阅者也是如此。
您可以将其中一个代理配置为桥接到所有其他代理并订阅在这些代理上发布的任何消息,这样它们就会出现在该单个代理的主题层次结构中。
有关如何配置 mosquitto 网桥的详细信息,请参阅手册页 here
我有三个虚拟机(VirtualBox,Ubuntu 18.04)。所有这些都带有 Mosquitto 代理(默认配置 localhost:1883)。两个 VM 是具有私有 IP 的 PUB,一个“服务器”是一个 SUB(通过 DHCP -bridged- 分配)。我有的是:
VM1 (PUB) [192.168.1.66]
VM (SUB) [192.168.1.55]
VM2 (PUB) [192.168.1.74]
想法是 SUB 从所有 PUB 接收 MQTT,但是,只有 MQTT 客户端配置如下
VM1 [192.168.1.66:1883] --> VM [192.168.1.66:1883] <-- VM2 [192.168.1.74:1883]
因此,SUB 只会接收来自 VM1 的消息,而不会接收来自 VM2 和其他 VM (PUB) 的消息。如何配置 mosquitto 和 SUB 的客户端以接收来自所有 PUB 的消息?
一个 MQTT 客户端实例只能连接到一个 MQTT Broker。
您有 2 个选择。
运行 3 台机器中的任何一台上只有一个代理,让所有发布客户端只向该代理发布,订阅者也是如此。
您可以将其中一个代理配置为桥接到所有其他代理并订阅在这些代理上发布的任何消息,这样它们就会出现在该单个代理的主题层次结构中。
有关如何配置 mosquitto 网桥的详细信息,请参阅手册页 here