300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MQTT学习笔记--阿里云物联网连接(一)连接

MQTT学习笔记--阿里云物联网连接(一)连接

时间:2024-06-18 03:10:03

相关推荐

MQTT学习笔记--阿里云物联网连接(一)连接

在学习了海创电子的MQTT理论知识之后,做此笔记,供自己查看。

参考文章链接:/daniaoxp/article/details/103039296

1、阿里云物联网平台

网址:https://iot./

(1)创建产品

(2)创建设备得到密钥

2、连接报文(Connect)

(1)固定报头:10

??(剩余长度)

(2)可变报头 固定10个字节 00 04 4D 51 54 54 04 C2 00 64

(协议名) 00 04 4D 51 54 54

(协议级别) 04

注释:MQTT 3.1.1的协议名是MQTT,等级是4

(连接标志) C2 (暂定)(有用到则在对应位置标1)

注:第0位一定是0

Clean Session:客户端和服务端可以保存会话状态,以支持跨网络连接的可靠消息传输

0:(false)缓存留住连接断开时的所有Qos 1 和Qos 2级别的消息

1:(true) 重连时不会收到旧消息

Will Flag:遗嘱标志

1:遗嘱消息会存储在服务器,网络连接关闭时服务器发布这个遗嘱消息,除非收到主动发送的disconnect报文,会删除这个遗嘱。主要目的就是非主动断开连接(网络断开等)时的处理

0:网络连接断开时,不能发送遗嘱消息

Will Qos:

用于指定发布遗嘱消息时使用的服务质量等级,和will flag配合使用。

如果遗嘱标志被设置为0,遗嘱QoS也必须设置为0(0x00)。

如果遗嘱标志被设置为1,遗嘱QoS的值可以等于0(0x00),1(0x01),2(0x02)。它的值不能等于3

Will Retain:

遗嘱保留,如果遗嘱消息被发布时需要保留,需要指定这一位的值,和will flag位配合使用。

如果遗嘱标志被设置为0,遗嘱保留(Will Retain)标志也必须设置为0。 如果遗嘱标志被设置为1:

Password Flag:用户名标志是0,则密码也必须是0;1 有密码

User Name Flag:0无用户名 1 有用户名

(保持连接) 00 64 (100s)

(3)有效载荷

客户端ID 设备名称|securemode=3,signmethod=hmacsha1|

用户名 设备名称&密钥

密码clientId设备名称deviceName设备名称productKey密钥

哈希加密/

3、尝试

{ "ProductKey": "a1Jf115Hhau",

"DeviceName": "T001",

"DeviceSecret": "bba251c0230d19e5a3aa295f9f594ce9" }

客户端ID:T001|securemode=3,signmethod=hmacsha1|

54 30 30 31 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

38个字节,因此前缀加上 00 26 得到

00 26 54 30 30 31 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

用户名:T001&a1Jf115Hhau

54 30 30 31 26 61 31 4A 66 31 31 35 48 68 61 75

16个字节,因此前缀加上 00 10 得到

00 1054 30 30 31 26 61 31 4A 66 31 31 35 48 68 61 75

密码:clientIdT001deviceNameT001productKeya1Jf115Hhau

哈希加密:b6119ca5526360cde8c53df98126adfb4673dde7

62 36 31 31 39 63 61 35 35 32 36 33 36 30 63 64 65 38 63 35 33 64 66 39 38 31 32 36 61 64 66 62 34 36 37 33 64 64 65 37

40个字节,因此前缀加上 00 28 得到

00 2862 36 31 31 39 63 61 35 35 32 36 33 36 30 63 64 65 38 63 35 33 64 66 39 38 31 32 36 61 64 66 62 34 36 37 33 64 64 65 37

组合:(剩余长度110)

10 6E 00 04 4D 51 54 54 04 C2 00 6400 26 54 30 30 31 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 7C00 1054 30 30 31 26 61 31 4A 66 31 31 35 48 68 61 7500 2862 36 31 31 39 63 61 35 35 32 36 33 36 30 63 64 65 38 63 35 33 64 66 39 38 31 32 36 61 64 66 62 34 36 37 33 64 64 65 37

4、连接

(1)打开网络调试助手

(2)选择TCP Client—— 选择主机地址——远程主机地址

阿里云服务器地址(华东2) :

密钥(ProductKey).iot-as--:1883

远程主机地址:a1Jf115Hhau.iot-as--:1883

得到回复:20 02 00 00

返回4个字节中,最后一个字节的含义:

遇到问题:阿里云物联网新建的设备处于为激活状态,需要怎么激活?

求大神解惑

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。