MQTT_1

MQTT

学习来源:https://www.bilibili.com/video/BV1Qz411B7ax/.
优点:精简,平台支持广,实时性高
以下测试基于阿里云物联平台
测试工具:网络调试助手(TCP Client)

topic互相订阅

发布
推送
推送
推送
topic
服务器
topic

1.报文汇总

C:客户端;S:服务器
MQTT报文

2.阿里云物联平台

set方法
post方法
APP,web
aliyun服务器
开发板

3.Qos

3.1:Qos0
只发送一次
3.2:QOS1
至少分发一次,至少收到一次确认
3.3:QOS2
只分发一次,两次确认 (耗费服务器资源)

4.报头

固定报头+可变报头+负载

5.CONNECT(16进制)

5.1数据格式

10 ??
byte1: 10
byte2: 剩余长度值(可变报头+负载)
剩余长度每个字节第7位为标志位,置高表示用到下一字节
200:C8 01 其中C8(1 1001000) 第7位置高表进位;即C8实 际表示十六进制48,十进制72
1000:E8 07
20000: A0 9C 01
40000: C0 B8 02
40000-16834*2=7232
7232/128 = 56
7232%128 = 64
64(100 0000) 高位置1 (1100 0000) C0
56(11 1000) 高位置1(1011 1000)B8
2--------------------------------------------- 02

5.2固定报头

10 ??
在这里插入图片描述
在这里插入图片描述

5.3 可变报头(固定十个字节)

00 04 4D 51 54 54 04 C2 00 64
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11000010 (C2)
在这里插入图片描述
byte9 byte10
连接时间,若超过时间未发送数据,便被剔除连接
若保持一直连接 使用ping命令
例如设置100s (00 64)
在这里插入图片描述

5.4 有效载荷(3个)

在这里插入图片描述

客户端标识符:
|securemode=3,signmethod=hmacsha1|(*表示设备名)
LIU_|securemode=3,signmethod=hmacsha1|
00 26 4C 49 55 5F 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
(遗嘱主题;遗嘱消息)
用户名: *&# (*表示设备名;#表示ProductKey)
LIU_&a1ZpXBeEPDu
00 10 4C 49 55 5F 26 61 31 5A 70 58 42 65 45 50 44 75
密码: 用DeviceSecret做为秘钥对clientId
deviceNameproductKey#进行hmacsha1加密后的结果
hmacsha1加密在线计算网站:http://encode.chahuo.com/.选择hmacSHA1
clientId
deviceName*productKey#
(*用设备名替换;#用productkey替换;密钥选择设备密钥)
00 28 39 65 66 63 37 63 39 63 37 36 35 35 66 33 35 30 38 65 62 30 36 62 62 32 32 65 65 33 62 63 38 63 34 36 62 63 35 62 33 62

阿里云服务器IP地址(华东2) : *.iot-as-mqtt.cn-shanghai.aliyuncs.com *表示自己账号的ProductKey注意替换
阿里云服务器端口号(华东2) : 1883

6.DISCONNECT—16进制

无可变报头和有效载荷
E0 00
在这里插入图片描述

7.PING—16进制

无可变报头和有效载荷
C0 00

在这里插入图片描述

8.SUBCRIBE—16进制

以主题/sys/a1ZpXBeEPDu/LIU_/thing/service/property/set为例

8.1固定报头

82 ??
在这里插入图片描述

8.2报文标识符

相当于消息ID 便于确定消息由谁所发
此处默认 00 0A
在这里插入图片描述

8.3有效载荷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.UNSUBCRIBE—16进制

相比订阅 无最后一个字节(等级字节)

9.1固定报头

A2
在这里插入图片描述

9.2可变报头

9.3有效载荷

在这里插入图片描述
在这里插入图片描述

10.PUBLISH—16进制

等级0
/sys/a1ZpXBeEPDu/LIU_/thing/event/property/post
2F 73 79 73 2F 61 31 5A 70 58 42 65 45 50 44 75 2F 4C 49 55 5F 2F 74 68 69
6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74
{“method”:“thing.event.property.post”,“id”:“000000001”,“params”:{“LightSwitch”:0},“version”:“1.0.0”}
7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F
73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4C 69
67 68 74 53 77 69 74 63 68 22 3A 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D

10.1固定报头

在这里插入图片描述
在这里插入图片描述

10.2可变报头

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.3有效载荷

在这里插入图片描述

11.参考文档

MQTT-3.1.1标准协议文档
链接: https://mcxiaoke.gitbooks.io/mqtt-cn/content/.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值