MQTT消息传输机制
定义:
mqtt 是物联网行业采用最多的消息中间件之一,其优点是支持高并发,低延迟,对QOS的消息级别设置也是非常方便的轻量级工具。
mqtt 控制报文格式
mqtt分为固定报文头,可变报文头,报文体。
固定报文头:每个MQTT控制报文都包含一个固定报头
名字 | 值 | 报文流动方向 | 描述 |
---|---|---|---|
Reserved | 0 | 禁止 | 保留 |
CONNECT | 1 | 客户端到服务端 | 客户端请求连接服务端 |
CONNACK | 2 | 服务端到客户端 | 连接报文确认 |
PUBLISH | 3 | 两个方向都允许 | 发布消息 |
PUBACK | 4 | 两个方向都允许 | QoS 1消息发布收到确认 |
PUBREC | 5 | 两个方向都允许 | 发布收到(保证交付第一步) |
PUBREL | 6 | 两个方向都允许 | 发布释放(保证交付第二步) |
PUBCOMP | 7 | 两个方向都允许 | QoS 2消息发布完成(保证交互第三步) |
SUBSCRIBE | 8 | 客户端到服务端 | 客户端订阅请求 |
SUBACK | 9 | 服务端到客户端 | 订阅请求报文确认 |
UNSUBSCRIBE | 10 | 客户端到服务端 | 客户端取消订阅请求 |
UNSUBACK | 11 | 服务端到客户端 | 取消订阅报文确认 |
PINGREQ | 12 | 客户端到服务端 | 心跳请求 |
PINGRESP | 13 | 服务端到客户端 | 心跳响应 |
DISCONNECT | 14 | 客户端到服务端 | 客户端断开连接 |
Reserved | 15 | 禁止 | 保留 |
byte1的高液位(bit7-bit4)存放的是报文的类型
固定报头的格式
bit | 7 6 5 4 | 3 2 1 0 |
---|---|---|
byte1 | MQTT控制报文的类型 | 用于指定控制报文类型的标志位 |
byte2 | 剩余长度 | 剩余长度 |