MQTT协议学习笔记(三)

MQTT协议学习笔记(三 连接阿里云)

阿里云MQTT 协议介绍

阿里云服务器IP地址(华东2):Y.iot-as-mqtt.cn-shanghai.aliyuncs.com
阿里云服务器端口号(华东2):1883
hmacsha1加密计算网站:http://encode.chahuo.com/
客户端ID: X|securemode=3,signmethod=hmacsha1|
用户名: X&Y
密码: 用devicesecret作为密钥对clientIdXdeviceNameXproductKeyY进行hmacsha1加密后的结果
建立阿里云的产品和设备后,可直接复制得到(在设备栏可查看)
{
“ProductKey”: “a17uvxb3Eyb”,
“DeviceName”: “lot_T”,
“DeviceSecret”: “67qN0jsgnyAI6oR87jUsiN2D1G5h6ghb”
}
X表示设备名称,Y表示产品ID

CONNECT 有效载荷

客户端ID = lot_T|securemode=3,signmethod=hmacsha1|
HEX表示= 6C 6F 74 5F 54 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C
总共 = 39个字节 = 0x27

用户名 = lot_T&a17uvxb3Eyb
HEX表示 = 6C 6F 74 5F 54 26 61 31 37 75 76 78 62 33 45 79 62
总共 = 17 = 0x11
在这里插入图片描述
密码解析
密码 = b21b0d30e0d87171ec3d87a6700e6ebd13649433
HEX表示 = 62 32 31 62 30 64 33 30 65 30 64 38 37 31 37 31 65 63 33 64 38 37 61 36 37 30 30 65 36 65 62 64 31 33 36 34 39 34 33 33
总共 = 40 = 0x28
在这里插入图片描述
分别在hex格式下的客户端ID,用户名,密码之前用两个字节表示他们的数据长度 如ID前 加上 00 27

上一篇中讲到,将CONNECT的可变包头设置为00 04 4D 51 54 54 04 C2 00 78,CONNECT的剩余长度等于可变报文加上负载之和,相加等于112 = 0X70

综上得到报文如下

10 70 00 04 4D 51 54 54 04 C2 00 78 00 27 6C 6F 74 5F 54 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 11 6C 6F 74 5F 54 26 61 31 37 75 76 78 62 33 45 79 62 00 28 62 32 31 62 30 64 33 30 65 30 64 38 37 31 37 31 65 63 33 64 38 37 61 36 37 30 30 65 36 65 62 64 31 33 36 34 39 34 33 33

在这里插入图片描述数据发送之后返回 20 02 00 00 表示已经连接上服务器

CONNACK报文解析

CONNACK固定报头

CONNACK固定报头固定为 20 02
在这里插入图片描述

CONNACK可变报头

CONNACK可变报头BYTE1

CONNACK可变报头BYTE1低7位固定为0,最高位由 clean session决定,因为我上一篇文章将他置一,所以收到的可变报文BYTE1 = 0,是正常的
在这里插入图片描述

CONNACK可变报头BYTE2

在这里插入图片描述
(以上包含博主个人的阿里云信息,希望读者不要恶意使用)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值