使用tcp接入时应使用mqtt://IP:1883
使用ws接入时应使用ws://IP:8083
基于tcp、ssl、ws、wss的MQTT接入方式,各有什么联系和区别?
接入方式 | 传输层协议 | 安全性 | 端口 | 适用场景 |
---|---|---|---|---|
TCP | TCP | 无加密 | 1883 | 内部网络、低安全性需求场景 |
SSL/TLS | TCP + SSL/TLS | 加密 | 8883 | 需要加密传输的场景 |
WS | WebSocket | 无加密 | 80 或自定义 | 浏览器、需要跨域通信的场景 |
WSS | WebSocket + SSL/TLS | 加密 | 443 或自定义 | 需要加密且跨域通信的场景 |
特性 | MQTT over TCP | MQTT over WebSocket |
---|---|---|
传输层协议 | 直接基于 TCP 协议 | 基于 WebSocket 协议(建立在 HTTP 之上) |
设计目标 | 专为设备间高效通信设计 | 专为浏览器与服务器通信设计 |
协议开销 | 低(直接使用二进制协议) | 较高(需要 HTTP 握手和 WebSocket 协议头) |
端口 | 默认 1883 (非加密)或 8883 (SSL/TLS) | 默认 80 (非加密)或 443 (SSL/TLS) |
跨域支持 | 不支持 | 支持(基于 HTTP 的跨域机制) |
防火墙穿透 | 可能被限制(需开放非标准端口) | 更易穿透(使用 HTTP/HTTPS 标准端口) |
浏览器兼容性 | 无法直接使用(浏览器不支持原生 TCP) | 可直接在浏览器中使用(通过 JavaScript) |
- 传输层协议:
- TCP 和 SSL/TLS 基于 TCP 协议。
- WS 和 WSS 基于 WebSocket 协议。
- 安全性:
- TCP 和 WS 无加密,数据明文传输。
- SSL/TLS 和 WSS 加密传输,安全性高。
- 适用场景:
- TCP 和 SSL/TLS 适合设备之间的通信。
- WS 和 WSS 适合浏览器与服务器通信。
- 性能:
- TCP 性能最高,SSL/TLS 和 WSS 由于加密开销,性能较低。
- WS 性能略低于 TCP,但支持跨域通信。