云到设备(Cloud-to-device, C2D)通讯
分类: Azure物联网 ◆ 标签: #Azure #IoT Hub # ◆ 发布于: 2023-06-12 21:28:18
Azure IoT Hub
提供了三种方案来支持云到设备(cloud-to-device, C2D)的通讯:
- 直接方法调用(Direct Method): 主要用于和设备交互的场景,需要设备即刻应答,例如打开某些功能或者特性,要么立即成功,要么失败。
- 孪生设备预期属性(Twin's Desired Properties): 针对长时间等待的下发命令设计的,例如设置或者调整设备的某些属性,但是不需要设备立即反馈。例如设置遥测数据间隔30分钟发送一次等等。
- 云到设备(Cloud-to-Device, C2D)的消息:需要注意的是C2D消息是单程消息。
后期我们会仔细的讨论Azure IoT Hub
的架构指南,其中我们会使用这些方案来实现可插拔的Azure物联网
架构,后面我们再来仔细学习。
关于云到设备的通讯,我们可以通过下表来对比:
分类 | 直接方法(Direct methods) | 孪生设备预期属性(Twin's desired properties) | 云到设备消息(Cloud-to-device messages) |
---|---|---|---|
应用场景 | 需要设备立即返回的下发命令,例如打开风扇 | 用于设置不需要立即反馈的一些下发命令,例如设置设备的一些预期的属性等等。 | 到设备的单程通知消息。 |
数据流向 | 数据双向流动, 需要设备能够对后端应用及时反馈。 | 单程通知,设备接收到后,无需向后端反馈。 | 单程流向 |
消息持久性 | 设备不在线会立即返回,后端应用会被通知到设备不在线。 | 属性值会保存在孪生设备中,设备重新在线后会再次读取。同时属性可以通过IoT Hub查询语言来查询。 | 消息会被保留48小时。 |
消息目的地 | 单个设备使用device id, 目的地是多个设备通过schedule job | 单个设备使用device id, 目的地是多个设备通过schedule job | 单个设备,使用device Id |
数据大小 | 直接方法最大playload 128KB | 最大期望属性值大小:32KB | 最大64KB |
更新频率 | 高 | 中等 | 低 |
协议 | MQTT 和AMQP | MQTT 和AMQP | 支持所有的协议,针对HTTPS,设备侧必须使用poll |
后期我们继续学习教程:
- 如何使用直接方法
- 如何使用预取属性更新
- 发送云到设备的消息。