WebSocket协议

全双工实时通信

定义

WebSocket(RFC 6455)是基于TCP的全双工通信协议,通过HTTP Upgrade握手(Upgrade: websocket、Sec-WebSocket-Key等)建立持久连接,之后双方可随时发送任意帧,无需请求-响应模式。相比HTTP轮询,WebSocket延迟低、头部开销小(仅2–14字节帧头),无连接建立开销,适合物联网实时监控、设备控制、即时通信、实时大屏等场景。

协议与帧格式

WebSocket握手后,数据以帧(Frame)形式传输,包含操作码(Opcode:文本/二进制/关闭/心跳)、掩码(客户端→服务端必掩码)、载荷长度。支持子协议(Subprotocol)协商,如 mqttwamp。Ping/Pong帧用于保活(Heartbeat),可检测连接存活。基于TCP,可叠加TLS实现WSS加密。

与MQTT、HTTP/2对比

MQTT面向消息发布订阅,有Broker、Topic、QoS等语义;WebSocket是传输层协议,无业务语义。HTTP/2支持多路复用与服务器推送,但仍是请求-响应模型。WebSocket适合需要双向实时流的场景(如实时监控、设备控制台),MQTT适合设备与云的消息通信;二者可结合,如MQTT over WebSocket。

达希物联云平台的控制台、实时监控大屏等Web应用,采用WebSocket实现设备状态、告警的实时推送,避免轮询带来的延迟与带宽浪费。设备侧可通过WebSocket与平台建立长连接,配合MQTT over WebSocket实现受限环境下的设备接入。达希物联的物联网卡为设备提供稳定网络,保障WebSocket连接不断线。


相关链接

返回通信类知识库