物联网 基于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
相关推荐
SimonKing2 分钟前
Agnes AI出桌面版了,可图可视频,免费用
java·后端·程序员
左左右右左右摇晃21 分钟前
手写Tomcat原理整理
java·开发语言·笔记·tomcat
孫治AllenSun25 分钟前
【JVM】四大引用类型分析
java·开发语言·jvm
于慨27 分钟前
安装java
java
夕除28 分钟前
sign 是什么
java·前端
绿蕉41 分钟前
“十五五”5 万亿电网投资落地:新型电力系统带动电力物联网通信模组产业爆发
物联网·5g redcap·新型电力系统·十五五·电力物联网模组·v2g 车网互动 #配网智能化
Penina10181 小时前
代码如何导入idea
java·intellij idea
.Hypocritical.1 小时前
Maven笔记——2
java·笔记·maven
乐橙开放平台1 小时前
养殖 SaaS 笔记:乐橙 IoT 物模型管环境,视频 OpenAPI 管回看
数据库·笔记·物联网·mysql·音视频
huohuopro1 小时前
手写 Tomcat 步骤教程
java·网络