物联网 基于netty构建mqtt服务协议支持

物联网 基于netty构建mqtt服务协议支持

核心协议

MQTT 核心协议版本 MQTT v3.1, v3.1.1, v5.0 基于 Netty 构建的项目支持相应版本

传输协议

传输协议支持 TCP (原生MQTT)(默认端口:1883)WebSocket(默认端口:8080)

  • TCP(原生 MQTT)

    标准的 MQTT 协议直接在 TCP 连接上运行,这是最常用、最高效的方式,
    适用于大部分物联网设备和服务端通信
    默认端口: 1883

  • WebSocket

    将 MQTT 消息封装在 WebSocket 帧中传输,
    使得浏览器里的 JavaScript 应用能够通过 WebSocket 连接 MQTT 服务器,
    同时也便于穿过只允许 HTTP/HTTPS 的企业防火墙
    默认端口: 8080(ws)或 8443(wss,加密版)

安全协议

SSL/TLS (MQTT over TLS)(默认端口:8883) WSS (MQTT over WSS)

复制代码
┌─────────────────────────────────────────────────┐
│                  MQTT 协议层                     │
└───────────────┬─────────────────┬───────────────┘
                │                 │
        ┌───────▼───────┐ ┌───────▼───────┐
        │   TCP 传输    │ │ WebSocket传输 │   ← 传输协议(决定数据如何打包)
        └───────┬───────┘ └───────┬───────┘
                │                 │
        ┌───────▼───────┐ ┌───────▼───────┐
        │    TLS加密    │ │    TLS加密    │   ← 安全层(可选,叠加后成为加密版本)
        └───────┬───────┘ └───────┬───────┘
                │                 │
          MQTT over TLS       MQTT over WSS
            (端口 8883)         (端口 443/8443)

WSS 不是独立协议

它就是 WebSocket + TLS 的标准缩写

复制代码
"全协议支持" 意味着 Broker 能同时以上四种组合(TCP、WS、TLS、WSS),
Netty 通过灵活编排 ChannelPipeline 就能实现

配置 Netty 的 MQTT 服务

只需要在 pipeline 中按顺序

复制代码
明文版:MqttDecoder + MqttEncoder
TLS 版:SslHandler + MqttDecoder + MqttEncoder
WebSocket 版:WebSocketServerProtocolHandler + MqttDecoder + MqttEncoder
WSS 版:SslHandler + WebSocketServerProtocolHandler + MqttDecoder + MqttEncoder
相关推荐
SimonKing几秒前
实用,DynamicTP进阶之数据采集与告警
java·后端·程序员
用户298698530144 分钟前
Java 进阶:基于模板生成 Word 文档的实践思路
java·后端
涛声依旧-底层原理研究所6 分钟前
响应式编程:map与flatMap实战解析
java
无心水1 小时前
【OpenClaw:赚钱】案例19、内容产量5倍、广告收入翻4倍:播客转多平台内容矩阵全自动化实战(OpenAI Whisper + Claude)
java·人工智能·python·ai编程·openclaw·养龙虾·java.time
云烟成雨TD1 小时前
Spring AI 1.x 系列【42】MCP 服务端 Spring Boot 启动器
java·人工智能·spring
云烟成雨TD1 小时前
Spring AI 1.x 系列【38】模型上下文协议(MCP)
java·人工智能·spring
Alson_Code1 小时前
Spring AI-1.1.0
java·人工智能·后端·spring·ai编程
ANnianStriver1 小时前
PetLumina 08 — 通知系统与搜索功能修复(广播机制 + 已读状态 + 参数对齐)
java·ai·ai编程·广播机制
ggaofeng1 小时前
试用zeroclaw
java·开发语言
就叫_这个吧1 小时前
servlet整合tomcat项目启动报错解决,org.apache.tomcat.util.descriptor.web.WebXml.setVersion
java·servlet·tomcat·apache