本文主要是介绍第 3-2 课:功能设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这一节我们来设计 IotHub 的下行数据处理功能。
功能设计
Maque IotHub 的指令下发系统有以下一些功能。
- 业务系统可以通过 IotHub Server API 提供的接口向指定的设备发送指令,指令可以包含任意格式的数据,比如字符串和二进制数据。
- 指令可设置过期时间,过期的指令将不会被执行。
- 业务系统可在设备离线时下发指令,设备在上线以后可以接收到离线时由业务系统下发的指令。
- 设备可以向业务系统回复指令的执行结果,IotHub 会把设备的回复通知到业务系统,通知包括:哪个设备回复了哪条指令,回复的内容是什么。
DeviceSDK 端实现
主题规划
和上行数据处理一样, IotHub 会把指令的元数据放在主题名中,为了接收下发的指令,设备将订阅以下的主题:
cmd/:ProductName/:DeviceName/:CommandName/:Encoding/:RequestID/:ExpiresAt
这个主题的第一层级代表的是指令的类别,目前固定为 cmd,代表普通的下行指令,后面我们还会看到其他类型的指令。后面的各个层级代表一种指令的元数据,下面把这些元数据的意义都解释下:
- ProductName、DeviceName:这两个元数据很好理解,代表接受指令的设备名称,设备用自己的 ProductName 和 DeviceName 进行订阅。
- CommandName:指令的名称ÿ
这篇关于第 3-2 课:功能设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!