本系列主要目的在于记录腾讯云物联网设备端的学习笔记,并且对设备端SDK进行补充说明。
简介
设备影子和属性都是用在服务器和设备通信上,主要实现应用层的可靠传输(可基于QoS0)、解决消息离线下的消息存储和下发。
区别于QoS1的完整消息存储,其中设备影子是通过get方法,属性是通过get status来获取状态的差值,从而减少了消息的传递和设备状态的更新。
IoT Explorer 内测阶段属性也是通过设备影子的消息来实现,后续抽象成数据模板的属性,使得更易理解。
开发注意事项
设备影子和属性都是使用腾讯云物联网平台的基本功能,在实际开发过程中一般需要注意以下几点:
1. 离线消息的获取:许多设备的离线消息并不是都要生效的,比如实时控制的消息(比如关机指令),如果设备无法回复,通过get status依旧能够获取到,如果响应,则有可能造成设备的故障(比如关机,可能会导致开机接收到立刻关机,从而形成死循环),此时需要在接收的消息中做好过滤选项。开发过程中,常会将订阅接收的方法进行接管处理,后续会迭代进入sdk。
2. 消息等级设置:由于存在应用层的确认机制,所以一般上行消息采用QoS0来减少服务器的PUBACK回复;但是订阅时,应采用QoS1来保证服务器下发消息支持QoS1的重传机制,同时开启packet id的过滤,来实现更好的消息下发的成功率。
3. 消息类型设置:在属性中有只读属性的概念(即表明该值只取决于设备上报),设置为只读能够避免无效的属性修改,从而导致避免控制消息中包含可读属性,引发设备端的解析异常。