iot - 我如何订阅 azure iot hub 设备间通信中的主题

标签 iot azure-iot-hub

我为我的解决方案设置了一个架构师,认为 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/

相关文章:

azure iothub直接方法未按预期工作

python - 为什么我不断收到模块 'azure' 未找到错误? [Azure IoT Edge 特定]

ssl - 物联网无法连接到使用 MQTT+TLS 的服务器

node.js - 如何在 Windows IoT 上不使用调试器启动 "Basic Node.js Express 4 Application (Universal Windows)"?

azure - 为 IoT Edge 部署 Azure 流分析作业

Azure IoT 中心 - "Subscribe"代码不起作用 : "connection was refused"

azure - UWP 应用程序是否支持 azure IOT Hub 直接方法和设备孪生?

java - 在 Raspberry Pi 上使用 Android Things 配置扬声器 PHat

mqtt - 当订阅者离线且 QOS=2 时由 mosquitto 代理发布的消息存储

apache-kafka - 同步来自多个数据源的数据