MQTT协议学习笔记(六)
SUBSCRIBE报文详解
阿里云Topic列表介绍
POST :广播
SET :订阅 (阿里云默认全部定义了)
SUBSCRIBE固定报头
SUBSCRIBE固定报头 = BYTE1(报文类型) + (剩余长度)
固定报头BYTE1 = 0X82 (低四位为 0010)
剩余长度 与 CONNECT的剩余长度一致
SUBSCRIBE可变报头
报文标识符
报文标识符两个字节长度,相当于消息ID,将你订阅的消息取一个 别称ID;方便服务器回复是否订阅成功,初步可设置为0X00 0X0A;
有效载荷
SUBSCRIBE报文的有效载荷包含了一个主题过滤器列表,它们表示客户端想要订阅的主题。
前两个字节为主题字符串的长度
比如我们要订阅这个主题 /sys/a17uvxb3Eyb/lot_T/thing/service/property/set
主题 = /sys/a17uvxb3Eyb/lot_T/thing/service/property/set
HEX = 2F 73 79 73 2F 61 31 37 75 76 78 62 33 45 79 62 2F 6C 6F 74 5F 54 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74
字节数 = 49 = 0X31
Byte1 = 0X00,Byte2 = 0X31,主题(hex),再后面是消息质量 0X00-0X02;
综上SUBSCRIBE报文
82 36 00 0A 00 31 2F 73 79 73 2F 61 31 37 75 76 78 62 33 45 79 62 2F 6C 6F 74 5F 54 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 00
可同时订阅多个主题