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

在学习了海创电子的MQTT理论知识之后,做此笔记,供自己查看。
参考文章链接:https://blog.csdn.net/daniaoxp/article/details/103039296

1、阿里云物联网平台

网址:https://iot.console.aliyun.com/

(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密钥

哈希加密http://encode.chahuo.com/

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 10 54 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 28 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

组合:(剩余长度110)

10 6E 00 04 4D 51 54 54 04 C2 00 64 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 00 10 54 30 30 31 26 61 31 4A 66 31 31 35 48 68 61 75 00 28 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

4、连接

(1)打开网络调试助手

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

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

密钥(ProductKey).iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

远程主机地址:a1Jf115Hhau.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

得到回复:20 02 00 00

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

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

求大神解惑

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值