IoTHub为设备APP提供了三种选项:
Direct method
: 直接方法,这种通信需要结果的马上确认。直接方法时常用于设备的交互控制,如打开风扇;
Twin's desired properties
:用于长时间运行的命令,这些命令旨在使设备进入特定的预期状态,例如,将遥感消息发送间隔设置为30分钟;
Clound-to-device messages
: 用于设备应用的单向通知
在云到设备的通信方式,这里有详细的比较:
分类 | Direct methods | Twin’s desired properties | cloud-to-device messages |
---|---|---|---|
使用场景 | 需要马上确认的命令,如打开风扇 | 长时间运行的命令,试图去将设备设置到一种所需的状态,例如:设置遥感发送间隔为30分钟 | 单方向的通知到设备app |
数据流 | 双向。设备app能够立马响应这种方式,后端根据语境信息接收请求的结果 | 单向。设备app收到属性改变的通知 | 单向。设备app收到信息 |
消息持久性 | 断开连接的设备时不能通信的。后端收到设备不能连接的通知 | 在设备孪生中属性值保存完好。设备将在下一次连接的时候重新读取,属性值能够用IoTHub的查询语言恢复 | 消息在IoTHub中保留48小时 |
目标 | 单个设备使用deviceId,多个设备使用jobs | 单个设备使用deviceId,多个设备使用jobs | 单个设备使用deviceId |
大小 | 直接方法的payload最大为128KB | 想要的属性最大为32KB | 最大为64KB |
频率 | 高 | 中 | 低 |
协议 | MQTT或AMQP | MQTT或AMQP | 支持所有的协议,当使用HTTPS时设备必须轮询 |
学习如何使用直接方式,所需的属性,云到设备的消息,见如下教程: