CONNECT:10+字符总长度(遵循剩余字符算法)+00+04+4D 51 54 54+04(MQTT3.1.1)+C2 +保活时间(120s:00 78)+客户端长度(2字节)+客户端ID+用户名长度(2字节)+用户名+密码长度(2字节)+PASSWORD
例如
{
"clientId":"a1mc0PReOQ9.NTP_TEST|securemode=2,signmethod=hmacsha256,timestamp=1647925073533|",
"username":"NTP_TEST&a1mc0PReOQ9",
"mqttHostUrl":"a1mc0PReOQ9.iot-as-mqtt.cn-shanghai.aliyuncs.com",
"passwd":"cc207a68488466dc5ffb1278cf4f30e77fa7b9fdea072d722addeade429cc2da",
"port":1883
}
报文如下(保护时间120s):
10 B4 01 00 04 4D 51 54 54 04 C2 00 78 00 50 61 31 6D 63 30 50 52 65 4F 51 39 2E 4E 54 50 5F 54 45 53 54 7C 73 65 63 75 72 65 6D 6F 64 65 3D 32 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 32 35 36 2C 74 69 6D 65 73 74 61 6D 70 3D 31 36 34 37 39 32 35 30 37 33 35 33 33 7C 00 14 4E 54 50 5F 54 45 53 54 26 61 31 6D 63 30 50 52 65 4F 51 39 00 40 63 63 32 30 37 61 36 38 34 38 38 34 36 36 64 63 35 66 66 62 31 32 37 38 63 66 34 66 33 30 65 37 37 66 61 37 62 39 66 64 65 61 30 37 32 64 37 32 32 61 64 64 65 61 64 65 34 32 39 63 63 32 64 61
MCGS脚本(用户策略)配置如下:
第一步:初始化发送缓存变量;
第二步:为发送缓存变量写入协议标识字段(00044D51545404C2)+保活时间16进制两字节(0078);
第三步:传入CLIENT ID字符到计算缓存变量,用于计算和字符转换(调用前文提到的长度计算脚本和ASCII转HEX脚本);
第四步:将结算结果存入发送缓存变量;
使用相同方法分别计算存储Username与password;
第五步:将之前的缓存的字符串传入长度计算算出字符总长;
第六步:封装报文头及可变长度;
第七步:发送报文等待服务器响应;
接入成功服务器会返回20020000,最后一位表示返回码,只有0x00才是正确接入,其余返回码都表示服务器拒绝连接(具体含义请查询OASIS-MQTT3.1.1协议规范)。
推荐文章:【教程】利用ECAN-401实现CAN报文自定义协议转发
太阳集团tcy8722人每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的官网http://www.hanzaichips.com/行了解,还有客服小姐姐在线答疑哦!成都太阳集团tcy8722--物联网应用专家,随时在身边,时刻准备为您服务!
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3