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

物联网 基于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,满足绝大多数物联网数据采集和控制场景

分类如下

分类 报文 方向 作用
连接与握手 CONNECT C→S 客户端发起连接,携带协议名、版本、Keep Alive、遗嘱、用户名密码
CONNACK S→C 服务端确认连接结果(成功/失败)
发布与接收 PUBLISH C↔S 发布应用消息(可带 QoS 和保留标志)
订阅与取消 SUBSCRIBE C→S 订阅一个或多个主题,请求 QoS
SUBACK S→C 服务端确认订阅,返回授予的 QoS
心跳保活 PINGREQ C→S 客户端发送心跳请求
PINGRESP S→C 服务端响应心跳
断开连接 DISCONNECT C→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 / PINGRESP PINGREQ=0xC0,PINGRESP=0xD0,剩余长度=0
DISCONNECT 0xE0,剩余长度=0
相关推荐
瓦学妹18 分钟前
为什么您的AI总是显示“不支持的区域”?如何解决?
大数据·网络·人工智能
coward911 小时前
千兆以太网卡(Ethernet)驱动初始化完成,但是无法udhcpc获取ip
服务器·网络·嵌入式硬件·tcp/ip
黎阳之光1 小时前
黎阳之光:用“视频孪生”擦亮国门智慧底色
大数据·人工智能·物联网·安全·数字孪生
软件技术员2 小时前
SSL.com 证书:免费单域名 90 天证书
网络·网络协议·ssl
腾霄星月2 小时前
内网横向移动全套实操重点知识总结
网络·安全·网络安全
茉莉玫瑰花茶3 小时前
IP 分片和组装的具体过程
服务器·网络·tcp/ip
jianqiang.xue12 小时前
系统服务层设计:沉淀通用能力,让业务层只专注业务
stm32·单片机·嵌入式硬件·mcu·物联网·esp32
乌萨奇也要立志学C++12 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
网络研究院13 小时前
Cloudflare 推出 Precursor 行为监测系统,全会话追踪技术引爆 AI 机器人防御战与隐私新争议
网络·人工智能·机器人·系统·cloudflare·反爬虫
Bruce_Liuxiaowei15 小时前
轻量级 IOC 管理方案:Streamlit 驱动的恶意IP情报平台
网络·jvm·网络协议·tcp/ip·安全