WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工(Full-Duplex)通信。 简单来说,它允许服务器主动向客户端推送数据。在 WebSocket 出现之前,Web 通信通常是单向的(客户端请求 -> 服务器响应),而 WebSocket 打破了这一限制,实现了真正的实时双向通信。 以下是关于 WebSocket 的详细解析: 1. 为什么需要 WebSocket?(背景与痛点) 在 WebSocket 出现之前,HTTP 协议存在一个核心限制:无状态、被动性。服务器无法主动向客户端发送信息,必须等待客户端发起请求。 为了实现“实时”效果(例如股票走势、聊天室),以前通常采用以下低效的方法: 轮询 (Polling): 客户端每隔几秒钟发送一次 HTTP 请求询问:“有新消息吗?”(浪费带宽,延迟高)。 长轮询 (Long Polling): 客户端发起请求,服务器保持连接打开,直到有新数据才响应。(虽然比轮询好,但仍有 HTTP 头部开销,且服务器资源占用高)。 WebSocket 的出现解决了这个问题: 它建立一次连接后,连接保持打开状态,双方可以...