物联网 基于netty控制报文结构(报文分类)
2026/5/24 13:06:27 网站建设 项目流程
  • 物联网 基于netty控制报文结构(报文分类)
    • 简述
    • 一个最小 MQTT 应用需要的报文交互流程
    • 分类如下
    • 报文结构

物联网 基于netty控制报文结构(报文分类)

简述

从搭建一个能工作的 MQTT 应用出发,以下 6 种报文 是最核心、最常用的,它们覆盖了连接、发布、订阅、心跳和断开的基本流程

一个最小 MQTT 应用需要的报文交互流程

客户端 服务端 |-------- CONNECT (clientId) -------->| |<------- CONNACK (成功) -------------| |-------- SUBSCRIBE (topic, qos) ---->| |<------- SUBACK (qos granted) -------| |-------- PUBLISH (topic, payload) -->| |<------- (消息转发给订阅者) ---------| |-------- PINGREQ ------------------->| |<------- PINGRESP -------------------| |-------- DISCONNECT ---------------->|

7 种报文(CONNECT、CONNACK、SUBSCRIBE、SUBACK、PUBLISH、PINGREQ/PINGRESP、DISCONNECT),就能开发出功能完整的 MQTT 客户端或简易 Broker,满足绝大多数物联网数据采集和控制场景

分类如下

分类报文方向作用
连接与握手CONNECTC→S客户端发起连接,携带协议名、版本、Keep Alive、遗嘱、用户名密码
CONNACKS→C服务端确认连接结果(成功/失败)
发布与接收PUBLISHC↔S发布应用消息(可带 QoS 和保留标志)
订阅与取消SUBSCRIBEC→S订阅一个或多个主题,请求 QoS
SUBACKS→C服务端确认订阅,返回授予的 QoS
心跳保活PINGREQC→S客户端发送心跳请求
PINGRESPS→C服务端响应心跳
断开连接DISCONNECTC→S客户端正常断开(可选)

报文结构

报文固定头可变头有效载荷 / 备注
CONNECT类型=1,标志位=0协议名 "MQTT" + 协议级别(4) + 连接标志(1字节) + Keep Alive(2字节)客户端标识符(必须),可选:遗嘱主题/消息、用户名、密码
CONNACK类型=2,标志位=0,剩余长度=2当前会话标志(1字节) + 返回码(1字节)返回码:0=成功,1~5 表示错误
PUBLISH类型=3,标志位含 DUP、QoS、RETAIN主题名(UTF-8),QoS>0 时有报文标识符(2字节)应用消息(二进制)
SUBSCRIBE类型=8,标志位=2(固定)报文标识符(2字节)一个或多个“主题过滤器+QoS要求”对
SUBACK类型=9,标志位=0与 SUBSCRIBE 相同的报文标识符返回码列表(0/1/2 成功,0x80 失败)
PINGREQ / PINGRESPPINGREQ=0xC0,PINGRESP=0xD0,剩余长度=0
DISCONNECT0xE0,剩余长度=0

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询