Skip to main content

websocket

websocket

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次 HTTP 握手,两者之间就直接可以创建持久性的连接(长连接),并进行双向数据传输

  • 升级协议。建立连接的时候,客户端会在 HTTP 请求头中带上 Upgrade: websocket 来和服务端协商,服务端同意后,返回 101 状态码,响应头中也带有 Upgrade: websocket,表明后续通信切换到 websocket 协议
  • 心跳检测
  • 断线重连

安全问题

[待补充]

和 http 的区别

复用 Http 握手通道,完成 Http 协议的切换升级,通过第一个请求建立了 TCP 连接之后,后续所有数据交互复用同一连接,彻底避免重复握手开销

websocket 优势

  • 实时双向通信:突破 HTTP 单向限制,服务器可主动推送数据
  • 高性能低开销:长连接复用 + 轻量级头部(数据传输采用二进制帧格式,帧头仅 ​​2~10 字节)
  • 高并发支持:单连接承载海量数据流,避免端口资源瓶颈
  • 支持二进制数据传输(如文件、音视频)

参考