WebSocket是一种网络通信协议,提供了在单个TCP连接上进行全双工通讯的能力。它是HTML5的一部分,允许服务器和客户端之间进行实时、双向的交互通信。
核心特点
- 全双工通信:服务器和客户端可以同时发送和接收消息
- 持久连接:一旦建立连接,保持开放状态,直到显式关闭
- 低延迟:相比HTTP轮询,减少了握手和头部开销
- 实时性:服务器可以主动向客户端推送数据
与HTTP的区别
- HTTP是请求-响应模式,WebSocket是双向通信
- HTTP连接是短连接,WebSocket是长连接
- HTTP每次请求都需要携带完整的头部,WebSocket连接建立后只需少量数据
握手过程
WebSocket连接通过HTTP升级请求建立:
- 客户端发送HTTP GET请求,包含Upgrade: websocket头部
- 服务器返回101 Switching Protocols响应
- 连接升级为WebSocket协议
应用场景
- 实时聊天应用
- 在线游戏
- 股票行情推送
- 协同编辑
- 实时监控系统