当前位置:首页 > 公众号精选 > 21ic电子网
[导读]给大家分享一下连接OneNet的MQTT的方法(TCP层)。


出品 21ic论坛 小叶三千

网站:bbs.21ic.com

由于项目上用到了中移云OneNet平台,现在对OneNet也算是比较了解,给大家分享一下连接OneNet的MQTT的方法(TCP层)。

OneNet上有两种MQTT协议,一种是多协议里面的MQTT(旧版),一种是MQTT物联网套件(新版)。现在平台主推MQTT新版的,也就是MQTTS协议,协议层上面基本没有变化,都是基于MQTT标准协议来的,但是一些参数有了很大的变化。

工程师项目经验:网络调试助手-TCP方式连接实践

先说一下MQTT的连接的协议,一个MQTT数据包由:固定头、可变头、消息体三部分构成。固定报文头就是固定的参数,具体代表什么意思网上有很多,就不说了。可变报文头是一些协议版本啊,标识等等,用不到的话一般也当作固定的就行。消息体就是一个参数的长度,后面再跟上参数的内容,例如:02(消息体长度) 31 31(2个长度的消息体”1””1”)等等,后续有具体的内容赋值。

   首先,先在OneNet上面创建MQTT物联网套件产品,之后再产品里面添加一个设备。

工程师项目经验:网络调试助手-TCP方式连接实践工程师项目经验:网络调试助手-TCP方式连接实践

    下载一个网络调试助手,我用的是NetAssist.exe,附件有,大家可以去下载。选择TCP客户端,填写好OneNet平台MQTTS的IP地址:183.230.40.96,端口号:1883  (此IP和端口号为不加密的,加密的为183.230.40.16  ::8883)OK,接下来需要发连接的报文了。

工程师项目经验:网络调试助手-TCP方式连接实践

平台MQTTS规定的参数是有3个,分别为设备名称、产品ID、token密钥,设备名称和产品ID就是你创建产品的ID,和设备的名称。Token的话就需要计算一下了,使用附件里的小程序。

工程师项目经验:网络调试助手-TCP方式连接实践

小程序计算token,也需要3个参数。Res:设备名称。Et:unix时间。Key:设备的access_key。

设备名称就是填写你对应的设备名称即可。Et大概讲一下,unix时间,就是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

国际ISO 8601规定的。可以上网找一些在线转化的工具。填写你想鉴权的有效时间,比如现在是2021-09-28 21:37:25,你Et写个2021-09-28 22:37:25,那么到22:37:25的时候就过期了,授权时间过了。

你想授权连接多长时间就写到多长时间。不过要注意的一点是:32位的变量只能到2038年,64位的系统就不存在这个问题了,需要注意一下。

计算unix时间网址:https://tool.chinaz.com/Tools/unixtime.aspx

   工程师项目经验:网络调试助手-TCP方式连接实践

Key:设备的access_key,在设备的详情页中找到。

工程师项目经验:网络调试助手-TCP方式连接实践

将这3个参数,对应填写到小程序里面,method选择sha1(别的也行吧,没试过),version:填写2018-10-31(这个是固定的,不用管它),这样点击Generate就可以生成出来计算好的token了。

  res:products/378414/devices/0A(378417是产品ID,0A是设备的名称)  Et:1625445017(2021-07-05 08:30:17 Unix时间)  key:L2o5bW8ic2A7ITBEVTJlW3RITiteSl1ic3h9Um8mbSE=(设备的Key)

工程师项目经验:网络调试助手-TCP方式连接实践

将计算完成的Token复制保存,等下需要用到。

这个算法很简单,大家有兴趣的可以按照官网的计算方法自己写程序算一下。我这里使用C 已经可以算出来了。Token计算完成后,就需要填写MQTT报文了,我们这里使用TCP发送。打开网络助手软件。

首先要先了解一下MQTT的报文结构:(详细的解释直接百度吧,这里只是我需要填写的报文)

0x10  -固定

0x91  -整个报文的长度145

0x01  -貌似是上一个值的进位,0x91超过了7F,这里就是1,如果没有就是0

0x00  -固定 “MQTT“的长度低位

0x04  -固定 “MQTT“的长度高位0x0004

0x4d  -’M’

0x51  -’Q’

0x54  -’T’

0x54  -’T’

0x04  -MQTT的版本04版本

0xC2  -QoS level 固定就行

0x00  -Keep Alive时间低位

0x3C  -Keep Alive时间高位0x003C  (60秒)

0x00  -Client ID Length低位

0x02  -Client ID Length高位 (设备的名称长度:2)

0x30  -Client ID:0

0x41  -Client ID:A (设备的名称:0A,名称根据自己的来,对应上面的长度也要改)

0x00  -User Name Length低位

0x06  -User Name Length高位 (产品ID的长度:6)

.......  -User Name  (产品ID:378414,也是根据自己的写)

0x00  -Password Length低位

0x79  -Password Length高位 (Token的长度:121,也是根据自己的长度写)

.......  -Password  (Token的具体十六进制值填写,根据自己的Token填写)

到这里就报文就解析结束了,将上面的内容整理成十六进制的值,填写到网络助手中

之前遇到的一个问题,就是报文中的第3位的“0x01”,我填写的是0x00,但是有的Token就可以正常连接,有的Token却不可以正常连接。后来找到问题,Token有的很长,这一位就会变成0x01,应该是长度有进位吧,大家一定要注意。

工程师项目经验:网络调试助手-TCP方式连接实践

TCP建立连接后,输入内容,点击发送,就可以看到有返回ACK的值是20 02 00 00,说明发送的内容正确,MQTT平台返回接入成功,之后再看看我们OneNet平台的设备,显示“在线”,接入成功!

工程师项目经验:网络调试助手-TCP方式连接实践

之后我们还可以使用Wireshark软件,进行原始报文的验证,或者监控。打开软件,选择监控的网络通道。

工程师项目经验:网络调试助手-TCP方式连接实践

在这里输入mqtt,进行网络报文过滤,这里只让其显示MQTT的报文。

工程师项目经验:网络调试助手-TCP方式连接实践

之后我们在网络助手里发送刚才的内容,重新发一次,就可以看到Wireshark出现了MQTT的报文,分别是发送的和接收到的ACK。

  工程师项目经验:网络调试助手-TCP方式连接实践

双击点击报文还可以具体分析报文的结构和内容。   工程师项目经验:网络调试助手-TCP方式连接实践

附件附上计算Token的小工具(点击阅读原文,进入原贴下载),大家也可以根据官方的文档的自己计算。

大家根据TCP报文格式的MQTT报文,可以自己开发上位机去通信了。

21ic电子网

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭