物联网 基于netty构建mqtt服务协议支持
物联网 基于netty构建mqtt服务协议支持核心协议MQTT 核心协议版本 MQTT v3.1, v3.1.1, v5.0 基于 Netty 构建的项目支持相应版本传输协议传输协议支持 TCP (原生MQTT)默认端口1883WebSocket默认端口8080TCP原生 MQTT标准的 MQTT 协议直接在 TCP 连接上运行这是最常用、最高效的方式 适用于大部分物联网设备和服务端通信 默认端口: 1883WebSocket将 MQTT 消息封装在 WebSocket 帧中传输 使得浏览器里的 JavaScript 应用能够通过 WebSocket 连接 MQTT 服务器 同时也便于穿过只允许 HTTP/HTTPS 的企业防火墙 默认端口 8080ws或 8443wss加密版安全协议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