本文主要是介绍第 3-1 课:选择下行数据处理方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
接下来的几节课,我们会来设计和实现 Maque IotHub 的下行数据处理功能。
定义下行数据
在物联网应用中,下行数据一般有两种,第一种是需要同步的数据,比如平台需要把训练好的模型部署到前端的摄像头上,那平台下发给设备的消息里面就包含模型数据的信息;第二种是指令,平台下发给设备,要求设备完成某种操作,比如共享单车的服务端下发给单车开锁的指令。
在 Maque IotHub 里,我们会把这两种下行数据统称为指令,因为第一种数据也可以被当作是要求设备完成"同步数据"这个操作的指令。 在大多数情况下,设备在收到指令后都应该向业务系统回复指令执行的结果(注意,不是回复指令已收到,因为使用 QoS>1 的消息在 MQTT 协议层面就已经保证设备一定能收到指令),比如文件有没有下载完毕、继电器有没有打开等。 是否回复以及怎么回复应该由业务逻辑决定,这个是业务系统和设备之间的约定, IotHub 只负责将业务系统下发的指令发送到设备,同时将设备对指令的回复再传送回业务系统。 IotHub 在实现一些功能时,也会向设备发送一些内部的指令。
和上行数据一样,指令也由元数据和负载组成,指令的元数据也是放在主题名中的,一般来说指令有以下一些元数据:
- ProductName、DeviceName:用于标识指令发给哪个设备。
- MessageID:作为消息的唯一标识,用于消息去重,也用于标识指令,设备回复指令
这篇关于第 3-1 课:选择下行数据处理方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!