Mosquitto-订阅当地桥梁上的主题



我是MQTT新手,所以这可能很可怕,但我不明白。

我有一些物联网设备,可以将数据发布到云MQTT代理。我无法改变。我希望能够从云代理获取消息,并将其传递到Azure中的物联网中心。以下是我迄今为止所做的:

  1. 配置了一个运行在CentOS的虚拟机来托管我的Mosquito服务器
  2. 安装Mosquitto并配置为连接物联网集线器的桥梁(IoTHubBridge(
  3. 创建了一个单独的Mosquitto配置来桥接到云MQTT代理(CloudBridge(

请注意,两个Mosquitto网桥实例都在同一个VM上运行。

到目前为止,一切都很好。IoT Hub可以接收通过IoTHubBridge的测试消息,CloudBridge可以接收来自云代理的消息。这就是我的困境——我如何让消息从CloudBridge传递到IoTHubBridge?

谢谢!

如注释中所示。

这里不需要2个MQTT代理。您应该在一个代理中配置两个网桥,这样,通过正确的网桥topic声明,消息应该只在IoT集线器和云代理之间流动。

这确实假设云代理的主题/消息结构与您需要发送到IoT集线器的内容兼容。桥接器将允许您在主题中添加/删除前缀,但不能完全重新映射。而且无法更改有效负载格式。

如果您需要更改有效负载格式或对主题结构进行重大更改,那么桥接不是正确的解决方案。您需要创建一个订阅云代理的应用程序,然后将转换后的消息重新发布到IoT Hub代理。在任何数量的语言中都有很多方法可以做到这一点,但如果您还不熟悉现有的语言/MQT客户端组合,我可能会建议您考虑像Node RED这样的方法。

最新更新