SSE与WebSocket

SSE与WebSocket

引用:https://www.cnblogs.com/1314520xh/p/18805931

1. WebSocket

WebSocket 是 HTML5 引入的 全双工通信协议,允许客户端和服务器之间保持持久连接,实现低延迟的双向通信

WebSocket特点:

  • 全双工通信:客户端和服务器都可以主动发送数据
  • 低延迟::连接建立后,数据交换无需额外的 HTTP 头部,提高通信效率
  • 支持二进制数据:可以发送文本(JSON)和二进制数据(Blob、ArrayBuffer)
  • 需要握手:使用 HTTP 进行 Upgrade: websocket 协商,建立 WebSocket 连接

适用场景:

  • 在线聊天应用IM
  • 实时游戏
  • 直播弹幕

2. SSE(Server-Sent Events)

SSE 是基于 HTTP 的 服务器推送技术,允许服务器主动向客户端发送数据,但客户端无法主动向服务器发送消息

SSE特点:

  • 单向通信:仅服务器可以推送数据,客户端不能主动发送
  • 基于 HTTP/1.1 长连接:使用 EventSource 监听服务器的推送数据
  • 仅支持文本传输:只能传输 UTF-8 编码的文本,不支持二进制数据
  • 自动重连:浏览器的 EventSource 组件自带断线重连功能

适用场景:

  • 新闻或社交媒体的实时更新
  • 服务器通知推送
  • 服务器日志监控
  • 大模型流式输出
image-20260325145822448

3. WebSocket与SSE对比

特性 WebSocket SSE(Server-Sent Events)
通信模式 双向通信 单向(服务器 → 客户端)
协议 独立协议(ws/wss) HTTP(基于 HTTP/1.1 长连接)
数据格式 文本 & 二进制 仅支持文本(UTF-8)
连接方式 需升级 HTTP 连接 直接使用 HTTP 长连接
自动重连 需要手动实现 EventSource 自带重连
浏览器支持 现代浏览器都支持 现代浏览器都支持(IE 不支持)
适用场景 聊天、游戏、实时数据同步 服务器通知、新闻推送、状态更新

SSE与WebSocket
http://example.com/2026/03/25/SSE与WebSocket/
作者
Kon4tsu
发布于
2026年3月25日
许可协议