我为我的解决方案设置了一个架构师,认为 iot hub 执行 mqtt 代理的工作,但是当我开始实现时,我发现您无法订阅特定主题来检索另一个 mqtt 客户端发布的消息,物联网中心上不存在主题概念。
我读过几篇关于这个主题的文章,但我还没有找到合适的替代方案。 物联网中心只有两个主题,事件中心端点限制为 10 个端点 您能指导我或向经纪人提出解决方案吗? 我如何订阅特定主题?
我想要一个设备到设备与 pub/sub 进行通信
示例:设备在主题/家庭/房间上发布 另一台设备订阅/home/room 使用物联网中心
我对所有建议持开放态度
谢谢
最佳答案
云开发
IoT 中心的 MQTT 代理实现有限,因此您无法从其他设备订阅设备主题。您可以使用 Azure 函数来捕获所有消息并决定是否需要发送云到设备消息。您还可以利用流分析来决定在与该功能对话之前是否需要发送消息。如果您想遵守 Azure IoT Stack 的规则,这可能是您的最佳选择。
无云开发
如果您确实希望设备能够相互监听,可以使用 old blog post描述了设备使用服务SDK监听其他设备发送到IoT Hub的消息的场景。它在帖子中列出了优点和缺点。
自定义边缘模块
如果您的设备位于同一网络上,您可以构建一个实现 MQTT 代理的边缘模块。然后,这些设备将像在正常网关场景中一样连接到边缘设备,但也会连接到您的自定义代理。在路由中,您可以将所有消息发送到自定义代理,以传输到监听该主题的任何设备,同时仍将数据发送到云。我想如果您朝这个方向发展,您会想要研究一些安全风险。
简而言之:这是可能的,可能以许多其他方式,但最终您利用的是一个本身不支持此功能的云平台。
关于iot - 我如何订阅 azure iot hub 设备间通信中的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62873148/