Skip to content

WebSocket

一句话

让浏览器和服务端保持一条「电话线」——双方随时可以说话,不需要挂断重拨。

核心直觉

HTTP:     客户端 ──拨号──→ 服务端 ──挂断──→ 结束
SSE:      服务端 ═══单向广播═══→ 客户端
WebSocket: 服务端 ═══双向通话═══ 客户端

为什么需要它(在 AI 场景中)

语音交互场景下,用户说话的同时 AI 也在生成回复——需要双向、实时、低延迟的通信。HTTP 一问一答太重,SSE 只能单向,WebSocket 是正解。

真实案例:流式 TTS

text
客户端 ←→ WebSocket 长连接
  → 发送文字片段(文本帧)
  ← 接收音频片段(二进制帧)
  → 发送下一段文字
  ← 接收更多音频
  ...直到 final=1 关闭

用户听到第一句时第二句已经在后台合成——这就是 WebSocket 双向实时通信的价值。

应用场景

场景为什么需要 WebSocket
语音 Agent用户说话 + AI 回复同时进行,双向实时
实时协作多人编辑同一文档,需要推送彼此的修改
聊天应用双向消息收发
游戏实时双向同步状态

横向对比

HTTPSSEWebSocket
方向客户端→服务端服务端→客户端双向
通信模式请求-响应单向推送全双工
连接短连接长连接长连接
协议HTTP/1.1HTTP/1.1WS(握手后升级)

优缺点

优点: 全双工双向通信,低延迟,一条连接搞定收发 缺点: 比 HTTP 复杂(需要处理心跳、重连、消息分帧),部分代理/防火墙不支持 WS,不如 SSE 省资源

如何选择

只需要服务端推送 → SSE。需要双向通信 → WebSocket。普通 CRUD → HTTP 够了。

小结

WebSocket 是实时通信的标配。在 AI Agent 开发中,当你需要语音对话、实时协作、或 Agent 执行过程的实时反馈时,WebSocket 是你绕不开的工具。

下一步

  • SSE — 只需要服务端推送时的更简方案