我如何在Azure IOT集线器设备之间订阅主题以进行设备通信

时间:2020-07-13 09:38:31

标签: iot azure-iot-hub

我为解决方案设置了一个架构师,认为iot hub可以完成mqtt代理的工作,但是当我开始实施时,我发现您无法订阅特定主题来检索另一个mqtt客户端发布的消息。物联网中心上不存在主题的概念。

我已经阅读了有关该主题的几篇文章,但没有找到合适的替代方法。 物联网中心只有两个主题,事件中心端点仅限于10个端点 您可以指导我或建议经纪人解决方案吗? 如何订阅特定主题?

我希望设备与pub / sub进行设备通信

示例:设备在主题/家庭/房间上发布 另一台设备订阅/家庭/房间 使用物联网中心

我愿意接受所有提案

谢谢

1 个答案:

答案 0 :(得分:0)

云开发

IoT中心的MQTT代理实施受到限制,因此,您无法从其他设备订阅设备主题。您可以使用Azure功能来捕获所有消息,并确定是否需要发送“云到设备”消息。您还可以利用Stream Analytics来决定在与该功能通话之前是否需要发送消息。如果要遵守Azure IoT Stack的规则,这可能是最好的选择。

没有云开发

如果您确实希望设备互相听,则old blog post描述了一种情况,其中设备使用服务SDK来侦听另一台设备发送到IoT中心的消息。它列出了帖子中的优缺点。

自定义边缘模块

如果设备在同一网络上,则可以构建实现MQTT代理的边缘模块。然后,这些设备将像在正常网关方案中那样连接到边缘设备,而且还连接到您的自定义代理。然后,在路由中,您将所有消息发送到您的自定义代理,以传输到任何正在收听该主题的设备,同时仍将数据发送到云。我想如果朝这个方向走,它们就是您要研究的一些安全隐患。

简而言之:可能还有其他许多方式,但是最终您将利用一个不原生支持此功能的云平台。