赞
踩
以下是使用at组件登录OneNET平台时,打印的RAW数据:
[D/AT] sendline: 0000-0020: 41 54 2B 51 49 53 45 4E 44 3D 30 2C 33 37 AT+QISEND=0,37
[D/AT] recvline: 0000-0020: 0D 0A ..
[D/AT] recvline: 0000-0020: 3E >
[D/AT] sendline: 0000-0020: 10 23 00 04 4D 51 54 54 04 C2 00 1E 00 06 36 35 37 30 37 37 00 08 32 30 31 39 30 31 35 36 00 05 .#..MQTT......657077..20190156..
[D/AT] sendline: 0020-0040: 73 6E 38 38 38 sn888
[D/AT] recvline: 0000-0020: 20 0D 0A ..
[D/AT] recvline: 0000-0020: 53 45 4E 44 20 4F 4B 0D 0A SEND OK..
[D/AT] recvline: 0000-0020: 0D 0A ..
[D/AT] recvline: 0000-0020: 2B 51 49 55 52 43 3A 20 22 72 65 63 76 22 2C 30 2C 34 0D 0A +QIURC: "recv",0,4..
[D/AT] urc_recv: 0000-0020: 20 02 00 00 ...
[D/AT] recvline: 0000-0020: 0D 0A ..
使用mqtt进行登录的时候,实际发送的数据包为10 23 00 04 4D 51 54 54 04 C2 00 1E 00 06 36 35 37 30 37 37 00 08 32 30 31 39 30 31 35 36 00 05 73 6E 38 38 38
总共37个字节, AT+QISEND=0,37
也正是发送37字节数据的意思。其中:
10 23是固定头:10代表connect连接报文,23H(十进制=35)代表后面的长度;
00 04 4D 51 54 54 04 C2 00 1E是可变消息头,10个byte代表如下:
byte1-byte2:00 04代表协议长度为4。
byte3-byte6:4D 51 54 54 代表MQTT协议。
byte7:MQTT版本,必须设置为4,平台只支持版本v 3.1.1,不支持更老的版本。使用第三方客户端时需要注意选择正确的版本。
byte8:
byte9-byte10:KeepAlive保活时间
00 06 36 35 37 30 37 37 00 08 32 30 31 39 30 31 35 36 00 05 73 6E 38 38 38
是有效载荷,其中:
00 06代表client ID长度,内容为36 35 37 30 37 37
;
00 08代表username长度,内容为32 30 31 39 30 31 35 36
;
00 05代表password长度,内容为73 6E 38 38 38
;
当连接成功时,会收到回复 20 02 00 00
, 其中:
20 代表connect ack消息类型;
02 代表剩余长度;
00 : bit7~bit1 保留位0, bit0 表示当前会话 ,当前为0(因为我们的connect连接包设置clean seesion 为1)
00 : 连接已被服务器接收, 代表连接成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。