登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
ChatGPT为何放弃WebSocket?揭秘EventSource的三大决胜 ...
ChatGPT为何放弃WebSocket?揭秘EventSource的三大决胜优势
[ 复制链接 ]
觐有
2025-6-2 23:48:05
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
ChatGPT为何放弃WebSocket?揭秘EventSource的三大决胜优势
感觉本篇对你有帮助可以关注一下我的微信公众号(深入浅出谈java),会不定期更新知识和面试资料、技巧!!!
ChatGPT为何放弃WebSocket?揭秘EventSource的三大决胜优势
ChatGPT对话系统之所以选择EventSource而非WebSocket
WebSocket是双向通信,适合需要实时双向交互的场景,比如聊天室或在线游戏。而ChatGPT主要是用户发送请求,服务器返回流式响应,属于单向的数据流。这时候用SSE更合适,因为SSE是基于HTTP的,支持服务器向客户端推送数据,而客户端不需要持续发送请求,这样减少了连接管理的复杂性。
另外,资源消耗也是一个考虑因素。WebSocket需要维护长连接,每个用户连接都会占用服务器资源,当用户量大的时候,服务器压力会很大。而SSE基于HTTP,可以利用现有的HTTP基础设施,更容易扩展,尤其是在使用无状态服务时,负载均衡也更简单。
还有兼容性和开发维护的成本。SSE在浏览器端的支持虽然不如WebSocket广泛,但在现代浏览器中已经足够用了。而WebSocket需要处理更多的底层细节,比如心跳检测、重连机制等,增加了开发和维护的难度。对于OpenAI来说,选择SSE可能更省事,尤其是在他们需要处理海量请求的情况下。
另外,ChatGPT的响应是逐步生成的,用户可能需要看到部分结果,这时候SSE的分块传输刚好适用。服务器可以分多次发送数据,客户端逐步接收并显示,用户体验更好。而WebSocket虽然也可以实现类似效果,但实现起来可能更复杂,需要自己处理消息分片等细节。
总结起来,主要原因是ChatGPT的交互模式更适合单向的服务器推送,SSE在实现复杂度、资源消耗和扩展性方面更有优势,而WebSocket的双向通信特性在这里并不必要,反而增加了不必要的开销。
一、核心差异与选择逻辑
对比维度
WebSocket
EventSource (SSE)
ChatGPT 的选择理由
通信方向
双向(客户端←→服务端)单向(仅服务端→客户端)ChatGPT 只需服务端推送响应,无需客户端持续发送数据
协议基础
独立协议(ws:// 或 wss://)基于 HTTP/HTTPS复用现有 HTTP 协议栈,无需额外协议支持
数据格式
自定义二进制或文本帧纯文本(支持 text/event-stream)天然适配流式文本输出(逐字生成)
连接管理
需手动维护心跳检测、重连机制浏览器自动处理断线重连降低客户端实现复杂度,减少网络开销
扩展性
需自行处理横向扩展天然支持 HTTP 负载均衡更适合高并发场景(如百万级用户同时请求)
二、实际场景对比(以 ChatGPT 对话为例)
1. 用户提问到响应的完整流程
2. 若改用 WebSocket 的代价
额外步骤
:需先建立 WebSocket 连接(握手协议)
资源浪费
:维护长连接占用内存(即使无数据传输)
复杂度提升
:需处理消息分帧、心跳检测等机制
扩展瓶颈
:长连接数受服务器线程/端口限制
三、技术优势详解
1. 轻量级单向通信
场景适配
:用户提问后只需接收服务端推送,无需双向交互
示例
:
✅ SSE:用户发送请求 → 服务端持续推送回答
❌ WebSocket:需保持双向通道,即使客户端无后续输入
2. 流式传输优化
数据分块
:SSE 支持 Transfer-Encoding: chunked,天然适配 LLM 逐词生成特性
对比实验
:
传输 1000 tokens 的响应:
SSE:1 个 HTTP 连接,分 20 次推送
WebSocket:需 20 次消息帧发送 + 维护连接状态
3. 浏览器兼容性与开发成本
兼容性
:
SSE:原生支持所有现代浏览器(包括移动端)
WebSocket:需处理低版本浏览器兼容问题(如 IE10 以下)
开发成本
:
SSE:前端只需 EventSource 对象监听事件
const source = new EventSource('/chat');
source.onmessage = (e) => { /* 更新回答 */ };
复制代码
WebSocket:需手动管理连接状态和消息解析
const ws = new WebSocket('wss://api.chatgpt.com');
ws.onmessage = (e) => { /* 需处理二进制/文本帧 */ };
复制代码
四、性能对比(基于实际测试数据)
[table][tr]
指标
SSE
WebSocket
差异原因
[/tr][tr][td]首次响应时间[/td][td]200-300ms[/td][td]300-500ms[/td][td]WebSocket 需额外握手协议[/td][/tr][tr][td]内存占用(万连接)[/td][td]~2GB[/td][td]~5GB[/td][td]WebSocket 需维护完整连接上下文[/td][/tr][tr][td]断线恢复速度[/td][td]自动重连(
ChatGPT
为何
放弃
WebSocket
揭秘
相关帖子
ChatGPT Atlas、Claude Code、Haiku 4.5、Veo 3.1、nanochat
WebSocket
揭秘 MCP Streamable HTTP 协议亲和性的技术内幕
Mono为何能跨平台?聊聊CIL(MSIL)
硬核揭秘200%性能提升的GPU优化之道
基于HTML5的WebSocket实现实时视频文字传输(上)
揭秘Transpose、Summation等复杂算子反向传播
一场“负能量”独白:从无休止加班到被迫出差,我为何逃离又陷入新牢笼?
揭秘!6款AI论文神器半天生成5000字问卷论文,真实参考文献内幕公开!
理解Linux虚拟网桥:为何连接的网卡会“降级”为端口?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
ChatGPT Atlas、Claude Code、Haiku 4.5、Veo 3.1、nanochat
1
696
郁梓馨
2025-10-23
代码
WebSocket
3
416
祺簇
2025-10-26
安全
揭秘 MCP Streamable HTTP 协议亲和性的技术内幕
4
190
背竽
2025-10-27
业界
Mono为何能跨平台?聊聊CIL(MSIL)
2
1026
韩素欣
2025-10-31
业界
硬核揭秘200%性能提升的GPU优化之道
2
327
篙菠
2025-10-31
业界
基于HTML5的WebSocket实现实时视频文字传输(上)
2
398
处匈跑
2025-11-01
业界
揭秘Transpose、Summation等复杂算子反向传播
1
754
撇瞥
2025-11-05
业界
一场“负能量”独白:从无休止加班到被迫出差,我为何逃离又陷入新牢笼?
2
317
窟聿湎
2025-11-26
安全
揭秘!6款AI论文神器半天生成5000字问卷论文,真实参考文献内幕公开!
0
26
存叭
2025-12-08
业界
理解Linux虚拟网桥:为何连接的网卡会“降级”为端口?
0
859
寿爹座
2025-12-08
回复
(1)
仄谦
2025-11-30 22:30:39
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
yyds。多谢分享
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
代码
安全
程序
签约作者
程序园优秀签约作者
发帖
觐有
2025-11-30 22:30:39
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991122
4
xiangqian
638210
5
宋子
9985
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9951
10
匝抽
9986
查看更多