我可以向通过MQTT WebSocket连接的一组Azure IoT集线器设备发送消息吗?

我可以向通过MQTT WebSocket连接的一组Azure IoT集线器设备发送消息吗?,mqtt,azure-iot-hub,Mqtt,Azure Iot Hub,目标:向一组通过MQTT WebSocket连接的Azure IoT集线器设备发送消息 最初想法:让一组物联网集线器设备(组X)订阅主题X的消息 问题: 在文档中,我看不到订阅设备的其他主题的方法。我只看到订阅特定于设备的端点的示例devices/{device_id}/messages/devicebound/# 该页面接着说:“IoT Hub不是一个通用的发布子消息代理,它只支持文档化的主题名称和主题过滤器。”我认为这些主题是 devices/{device\u id}/messages/

目标:向一组通过MQTT WebSocket连接的Azure IoT集线器设备发送消息

最初想法:让一组物联网集线器设备(组X)订阅主题X的消息

问题:

在文档中,我看不到订阅设备的其他主题的方法。我只看到订阅特定于设备的端点的示例
devices/{device_id}/messages/devicebound/#

该页面接着说:“IoT Hub不是一个通用的发布子消息代理,它只支持文档化的主题名称和主题过滤器。”我认为这些主题是

  • devices/{device\u id}/messages/devicebound/
  • devices/{device_id}/messages/devicebound/#
我的结论:我无法让一组物联网集线器设备(X组)订阅主题为X的消息

问题:

  • 我的结论正确吗
  • 如果我的结论是正确的,是否有其他方法可以将消息发送到通过MQTT WebSocket连接的一组Azure IoT集线器设备

  • 你的结论是正确的。Azure IoT Hub本身不是MQTT代理。 如果您想向连接到Azure IoT Hub的一组设备发送消息(独立于它们所连接的协议),则需要查看IoT Hub的其中一个。 根据您的场景,您可以使用以下选项之一:Cloud 2设备消息、Twins或方法。IoT Hub在后端公开API(易于与服务客户端SDK一起使用),允许使用这些API中的任何一个

    C2D消息用于向设备发送原始数据,这意味着您在云和设备之间实现了自己的“协议”。C2D消息在云中也是持久的,因为如果设备未连接,IoT Hub将保留它们(在设置中定义的特定时间内)

    Device Twins允许将设备的配置与云同步,并允许在设备上执行批处理操作(当然是您希望更仔细地查看的设备)


    Device Direct方法允许从云调用设备上运行的函数,类似Twins支持批处理操作。

    是否有计划将Azure IoT Hub打造成通用MQTT发布子消息代理?我们在AWS中有完全无服务器的体系结构(使用AWS IoT网关作为MQTT代理),我们正在尝试在Azure中进行复制。