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

Can I send a message to a group of Azure IoT Hub Devices connected via MQTT WebSocket?

目标: 将消息发送到一组通过 MQTT WebSocket 连接的 Azure IoT 中心设备。

初步想法:让一组 IoT 中心设备(组 X)订阅主题为 X 的消息。

问题:

Communicate with your IoT hub using the MQTT protocol 文档中,我没有找到让设备订阅其他主题的方法。我只看到订阅 设备特定端点 devices/{device_id}/messages/devicebound/#.

的示例

页面继续说"IoT Hub is not a general purpose pub-sub messaging broker, it only supports the documented topic names and topic filters."我认为那些主题是

我的结论:我不能让一组 IoT 中心设备(组 X)订阅主题为 X 的消息。

问题:

  1. 我的结论正确吗?
  2. 如果我的结论是正确的,是否有其他方法可以将消息发送到一组通过 MQTT WebSocket 连接的 Azure IoT 中心设备?

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

C2D 消息用于将原始数据发送到设备,这意味着您可以在云和设备之间实现自己的 "protocol"。 C2D 消息也在云中持久存在,因为如果设备未连接,IoT 中心将保留它们(在设置中定义的特定时间)。

Device Twins 允许将设备的配置与云同步,并允许对设备进行批量操作(您肯定想仔细研究一下)。

Device Direct Methods 允许从云端调用设备上的函数 运行,并且像 Twins 一样支持批处理操作。