从设备app发送信息到后端,IoTHub提出了三种方式:
- Device-to-Cloud messages:时间序列遥测和警报
- Device twin’s reported properties:报告设备状态信息
- File uploads:用于媒体文件和大的遥感数据。
以下是设备到云通信的详细比较:
比较因素 | Device-to-cloud messages | Device twin’s reported properties | File uploads |
---|---|---|---|
使用场景 | 遥感时间序列,如每5分钟发送一次256KB的传感器数据 | 可用功能和条件,例如:当前设备的连接模式,如蜂窝和wifi。同步长时间运行的工作流,例如配置和软件更新 | 媒体文件,大型的遥感数据,尤其是压缩之后的 |
存储和恢复 | 在IoThub中短暂的存储,只有7天,智能顺序读 | 在IoTHub中的设备孪生中存储,用IoTHub查询语言恢复 | 存储在用户提供的storage账户中 |
数据大小 | 最大为256-KB的信息 | 最大的reported properties为32KB | 由Azure Blob Storage来决定文件的的最大值 |
使用频率 | 高 | 中 | 低 |
传输协议 | 至此所有的协议 | 使用MQTT或者AMQP协议 | 任何协议都支持,但在设备端需要使用HTTPS协议 |
应用程序无论以遥测时间序列或者警报形式发送信息,在设备孪生中都可用。在这个情景下,你能够选择下面的一种:
- 设备APP发送设备到云的信息和报告属性的改变
- 在后端接收信息时能够存储设备孪生的tags中的信息
由于“设备到云”消息的吞吐来那个比“设备孪生”的高的多,因此有时要尽量避免为每次设备到云消息更新设备孪生。