我是靠谱客的博主 帅气戒指,最近开发中收集的这篇文章主要介绍mqtt协议详解_阿里云物联网平台使用心得(16)MQTT协议详解CONNECT负载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1f7e7a5893c32d62e8f2c1b92956385c.png

题目

大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖。上一篇文章,超子给大家介绍了,如何在阿里云物联网平台上建立产品和设备,以及获取三元组信息的方法,那么今天超子就详解下CONNECT报文中的负载。

物联网平台的官方说明都在左侧导航产品文档下物联网设备与接入中,内容非常多,基本涵盖了物联网平台使用中的方方面面,在介绍负载的时候,我把相关的信息总结一下,因为产品介绍文档中比较分散,所以就不带着大家看产品文档了,有兴趣的话,大家可以自己去看看。

(1)产品文档中介绍了阿里云物联网平台的域名和端口号,超子总结如下

域 名: *.iot-as-mqtt.cn-shanghai.aliyuncs.com

端口号: 1883

其中*号需要替换成自己三元组中的ProductKey

373ad1f0af653e1699abe6dff8e9fc4d.png

三元组信息

那么按上图三元组中的信息,域名就是 a12dTIroTJC.iot-as-mqtt.cn-shanghai.aliyuncs.com

(2)接下来是客户端ID的构成,超子总结如下

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

其中*号需要替换成自己三元组中的DeviceName ,按上图三元组中的信息进行替换

客户端ID就是:D001|securemode=3,signmethod=hmacsha1|

长度共计38字节,实验的时候我们需要发16进制的数据。并且简化书写,去掉0x,然后还要在最前面加上两个字节,表示客户端ID 的长度,最终结果如下

00 26 44 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

(3)接下来是用户名的构成,超子总结如下

用户名 : * (注意不要把&符号丢了)

其中*号需要替换成自己三元组中的DeviceName ,其中#号需要替换成自己三元组中的ProductKey

那么按上图三元组中的信息替换 ,用户名就是 : D001&a12dTIroTJC

长度共计16字节,我们还是简化书写16进制,并且最前面加入表示长度的两个字节,最终结果如下

00 10 44 30 30 31 26 61 31 32 64 54 49 72 6F 54 4A 43

(4)接下来是密码的构成,超子总结如下

密码需要进行一次hmacsha1加密 ,用三元组中的DeviceSecret做为秘钥对clientId*deviceName*productKey#加密

其中*号需要替换成自己三元组中的DeviceName ,其中#号需要替换成自己三元组中的ProductKey

那么按上图三元组中的信息替换 ,结果如下

clientIdD001deviceNameD001productKeya12dTIroTJC

然后DeviceSecret是jBiRd3INpmL0zrb8XgURzP6JJOmFWMdJ,网上找个在线加密网站,进行一次hmacsha1加密 ,如下图所示

34457ed0d93e864cbd701b9f08546c08.png

加密

加密后的结果简化书写16进制,并且最前面加入表示长度的两个字节,密码的最终结果如下:

00 28 35 33 66 65 37 33 36 65 64 37 35 34 38 32 34 39 32 33 34 64 37 38 64 33 38 33 66 34 66 38 31 38 64 63 64 39 36 61 37 65

到此负载中的3个信息都构建好了,那么把3个信息按顺序,先是客户端id,然后是用户名,最后是密码,组合在一起,最终数据,简化书写16进制如下

00 26 44 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 44 30 30 31 26 61 31 32 64 54 49 72 6F 54 4A 43 00 28 35 33 66 65 37 33 36 65 64 37 35 34 38 32 34 39 32 33 34 64 37 38 64 33 38 33 66 34 66 38 31 38 64 63 64 39 36 61 37 65

总共100个字节,到此为止,CONNECT报文的负载,也算是完成了,那么下篇文章,超子就用网络调试助手软件,实际测试一下。

最后

以上就是帅气戒指为你收集整理的mqtt协议详解_阿里云物联网平台使用心得(16)MQTT协议详解CONNECT负载的全部内容,希望文章能够帮你解决mqtt协议详解_阿里云物联网平台使用心得(16)MQTT协议详解CONNECT负载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部