大家好,超子又和大家见面了,超子我能力有限,技术不高,有什么错误的地方,欢迎板砖。今天我们测试一下tlink物联网平台MQTT协议下发命令的功能,也就是分析一下服务器推送的PUBLISH报文命令。
首先我们进入控制台内的设备管理页面,我们用开关设备测试命令下发功能,使用MQTT协议,接收命令推送之前,我们必须订阅相关的Topic后才能收到推送,我们需要订阅的Topic格式如下:
*/+ 其中*号需要替换成设备的序列号,以上图开关设备为例,最终需要订阅的Topic字符串如下:
23L698OJDS0Q1MG4/+
我们构建一下订阅报文,首先是SUBSCRIBE订阅报文的固定报头,0x82 ??,??是剩余长度,我们需要确定了可变报头和负载之后才能计算出具体的值,所以剩余长度待定。
然后是SUBSCRIBE订阅报文的可变报头,只有2个字节的报文标识符,我们使用0x00 0x01。
然后是SUBSCRIBE订阅报文的负载,首先我们数一下需要订阅的Topic的长度,是18字节,我们把Topic字符串换成16进制,而且前面还得加上2个字节,表示长度18,换成16进制,简化书写&