网易首页 > 网易号 > 正文 申请入驻

ChatGPT为啥不用Websocket而是EventSource?

0
分享至

点击下方“JavaEdge”,选择“设为星标”

第一时间关注技术干货!


免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案」; 不要急着评判文章列出的观点,只需代入其中,适度审视一番自己即可,能「跳脱出来从外人的角度看看现在的自己处在什么样的阶段」才不为俗人。 怎么想、怎么做,全在乎自己「不断实践中寻找适合自己的大道」

1 前言

在ChatGPT官网我们可以看到,对话的方式仅仅只有一个post请求,而没有使用IM中使用的websocket链接。

和普通POST请求不一样的,返回信息Response没了,取而代之的是EventStream

EventStream是啥玩意?gpt 一下,原来是Web API中的EventSource接口返回的数据。

2 MDN官方描述

EventSource接口是 web 内容与服务器发送事件 一个EventSource实例会对HTTP服务器开启一个持久化的连接,以text/event-stream格式发送事件,此连接会一直保持开启直到通过调用EventSource.close()关闭。

EventSource也称为 Server-Sent Events,SSE。

3 EventSource V.S Websocket 3.1 EventSource 3.1.1 优势 ① 简单易用

EventSource API非常简单,只需要创建一个EventSource对象并指定服务器端的 URL,就可以开始接收服务器推送的消息。相比之下,WebSocket 需要处理更多的事件和状态变化。

② 服务器推送

EventSource适用于服务器主动向客户端推送数据,客户端只能接收服务器发送的事件。

服务器端实现简单:服务器端可以通过简单的 HTTP 响应流推送事件给客户端,而不需要处理复杂的 WebSocket 协议。

③ 自动重连

EventSource 有内置的自动重新连接功能,断开连接后会自动尝试重新连接,适用于长期保持连接并接收事件流的场景。

这在 WebSocket 中需要手动实现。

④ 兼容性

EventSource在大多数现代浏览器中得到支持,无需额外的库支持。

利用现有的 HTTP 基础设施:EventSource 使用标准的 HTTP 协议,易通过现有的代理、防火墙和负载均衡器,而这些在 WebSocket 中可能需要额外配置。

长连接:SSE 建立后会保持一个长期的 HTTP 连接,并不断从服务器接收数据。

3.1.2 劣势 ① 单向通信

只支持从服务器到客户端的单向通信,客户端无法向服务器发送数据。如需双向通信(例如聊天应用),WebSocket 更适合。

① 较少的功能

相比于WebSocket,EventSource提供的功能较为有限,仅限于接收服务器发送的事件。

② 性能和效率

效率较低:在大量小消息或高频率消息传输的场景下,WebSocket 的二进制传输和帧控制带来更高的效率。

3.1.3 适用场景

考虑以上优劣,EventSource 适用于以下场景:

  • 实时更新:需要从服务器实时接收数据更新,如股票行情、新闻推送等。

  • 简单的通知系统:例如简单的服务器状态或系统通知。

  • 资源受限的应用:对于只需要简单实时通信的应用,EventSource 的实现和维护成本更低。

综上所述,选择 EventSource 而非 WebSocket 主要是因为其简单性、HTTP 兼容性、自动重连功能以及更易于实现和维护的服务器端需求。然而,如果应用需要复杂的双向通信和高效的数据传输,WebSocket 会是更好的选择。

3.2 WebSocket 3.2.1 优势 ① 双向通信

WebSocket支持双向通信,客户端和服务器可以彼此发送数据。

② 实时性

WebSocket提供了更低的延迟和更快的数据传输速度,适用于实时性要求较高的应用场景。

③ 丰富的功能

WebSocket提供了更多的功能,例如数据帧的自定义和二进制数据的传输等。

3.2.2 劣势 ① 复杂性

WebSocket API相对于EventSource更为复杂,使用起来可能需要更多的代码和理解。

② 需要服务器支持

使用WebSocket需要服务器端实现对应的WebSocket协议,而EventSource只需要服务器端支持发送事件即可。

③ 兼容性

相对于EventSource,WebSocket在某些较旧的浏览器或网络环境中的支持可能不够广泛。

综上,EventSource适用于服务器主动推送事件给客户端,并且在保持长期连接和接收事件流时表现良好。WebSocket适用于需要实时双向通信和更丰富功能的场景,但需要服务器端和客户端都支持WebSocket协议,选择使用哪种技术应基于具体需求和应用场景进行评估。

4 ChatGPT选择理由

个人猜测是考虑到:

4.1 仅服务器推送

EventSource专注于服务器向客户端主动推送事件的模型,这对于ChatGPT对话非常适用。ChatGPT通常是作为一个长期运行的服务,当有新的回复可用时,服务器可以主动推送给客户端,而不需要客户端频繁发送请求。

4.2 自动重连和容错

EventSource具有内置的自动重连机制,它会自动处理连接断开和重新连接的情况。这对于ChatGPT对话而言很重要,因为对话可能需要持续一段时间,连接的稳定性很重要。

4.3 简单易用

相比WebSocketEventSource的API更加简单易用,只需实例化一个EventSource对象,并处理服务器发送的事件即可。这使得开发者可以更快速地实现对话功能,减少了一些复杂性。

4.3 浏览器兼容性

EventSource在大多数现代浏览器中得到广泛支持,包括移动端浏览器。相比之下,WebSocket在某些旧版本的浏览器中可能不被完全支持,需要考虑兼容性问题。

WebSocket也是一种很好的选择,特别是当需要实现更复杂的实时双向通信、自定义协议等功能时,或者对浏览器的兼容性要求较高时。最终选择使用WebSocket还是EventSource应该根据具体的项目需求和技术考虑来确定。

注意EventSource只支持GET请求。ChatGPT是通过自己重写方法来发起POST请求的。

公众号:JavaEdge 专注分享软件开发全生态相关技术文章、视频教程资源、热点资讯等,如果喜欢我的分享,给 点一个赞 或者 ➕关注 都是对我最大的支持。

欢迎长按图片加好友,我会第一时间和你分享软件行业趋势面试资源学习途径等等。

添加好友备注【技术群交流】拉你进技术交流群

关注公众号后,在后台私信:

  • 更多教程资源应有尽有,欢迎关注并加技术交流群,慢慢获取


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
忠县惊现特大谋杀案!副县长办公室内惨遭杀害,真相引人深思!

忠县惊现特大谋杀案!副县长办公室内惨遭杀害,真相引人深思!

人生录
2026-04-24 09:13:06
戴安娜因太好看引发SBI强烈不满,称不伦不类令人作呕

戴安娜因太好看引发SBI强烈不满,称不伦不类令人作呕

街机时代
2026-04-25 18:00:03
美专家:美军一旦向北京、上海扔下核弹,中国并不会对等报复

美专家:美军一旦向北京、上海扔下核弹,中国并不会对等报复

董董历史烩
2026-04-26 04:42:31
颜宁微博发文:我本人曾经至少两篇CNS论文被审稿人偷信息抢发

颜宁微博发文:我本人曾经至少两篇CNS论文被审稿人偷信息抢发

澎湃新闻
2026-04-26 11:18:27
30多家法院集体引用一部“空气法”:这不是荒唐剧,是恐怖片

30多家法院集体引用一部“空气法”:这不是荒唐剧,是恐怖片

迷世书童H9527
2026-04-25 14:15:25
男子带9岁儿子到广州一酒店泡温泉碰到两条蛇,酒店回应

男子带9岁儿子到广州一酒店泡温泉碰到两条蛇,酒店回应

潇湘晨报
2026-04-26 13:36:00
114:98!联盟首个2:2诞生,二当家季后赛首个3双,天王山之战来了

114:98!联盟首个2:2诞生,二当家季后赛首个3双,天王山之战来了

林子说事
2026-04-26 15:58:23
强肝第一名!不是枸杞,也不是山药,而是家家户户都有的

强肝第一名!不是枸杞,也不是山药,而是家家户户都有的

华庭讲美食
2026-04-26 11:25:05
千万企退人员多年合理诉求迟迟未落地!真实现状深度解析

千万企退人员多年合理诉求迟迟未落地!真实现状深度解析

匹夫来搞笑
2026-04-25 15:26:44
张军失联背后四大影响揭晓!李永波巧妙抽身,刘国梁成舆论焦点

张军失联背后四大影响揭晓!李永波巧妙抽身,刘国梁成舆论焦点

林子说事
2026-04-26 14:41:39
网易号平台每日辟谣公告(四月二十四日)

网易号平台每日辟谣公告(四月二十四日)

网易号官方平台
2026-04-24 17:54:26
37岁男篮传奇人物:定居广东,身居要职财富自由,娶娇妻生双胞胎

37岁男篮传奇人物:定居广东,身居要职财富自由,娶娇妻生双胞胎

寻墨阁
2026-04-26 01:21:55
已入化境!亚历山大83%命中率狂飙42分创季后赛得分新高

已入化境!亚历山大83%命中率狂飙42分创季后赛得分新高

北青网-北京青年报
2026-04-26 14:33:03
干掉阵风只是小意思,外媒说歼-10C厉害,根本不是因为它自己能打

干掉阵风只是小意思,外媒说歼-10C厉害,根本不是因为它自己能打

知鉴明史
2026-04-25 17:45:03
银行收缩潮来了

银行收缩潮来了

读懂财经研究所
2026-04-24 10:51:21
5分钟2球!曼城2-1逆转连续4年晋级决赛 大黑马20场不败惨遭终结

5分钟2球!曼城2-1逆转连续4年晋级决赛 大黑马20场不败惨遭终结

狍子歪解体坛
2026-04-26 02:12:15
嫌犯携多种武器冲向安检点后开火,特朗普再次躲过危险称与伊朗无关

嫌犯携多种武器冲向安检点后开火,特朗普再次躲过危险称与伊朗无关

澎湃新闻
2026-04-26 12:32:27
乌军曝出丑闻,西尔斯基怒不可遏:所有指挥官撤职查办!

乌军曝出丑闻,西尔斯基怒不可遏:所有指挥官撤职查办!

史政先锋
2026-04-25 20:38:13
事态已升级,1.7万外军集结,3面围堵中国,解放军万吨战舰已就位

事态已升级,1.7万外军集结,3面围堵中国,解放军万吨战舰已就位

阿伧说事
2026-04-26 10:44:32
300965,重大资产重组!明天停牌!

300965,重大资产重组!明天停牌!

证券时报e公司
2026-04-26 17:29:23
2026-04-26 18:51:00
JavaEdge incentive-icons
JavaEdge
Java 技术
484文章数 457关注度
往期回顾 全部

科技要闻

涨价浪潮下,DeepSeek推动AI“价格战”

头条要闻

特朗普内阁又一女部长落马:强迫男下属为其提供性服务

头条要闻

特朗普内阁又一女部长落马:强迫男下属为其提供性服务

体育要闻

森林狼3比1掘金:逆境中杀出了多孙穆?!

娱乐要闻

仅次《指环王》的美剧,有第二季

财经要闻

事关新就业群体,中办、国办发文

汽车要闻

预售19.38万元起 哈弗猛龙PLUS七座版亮相

态度原创

亲子
本地
家居
数码
公开课

亲子要闻

给宝宝的辅食太精细,危害不是一般大,家长们早了解早安心

本地新闻

云游中国|逛世界风筝都 留学生探秘中国传统文化

家居要闻

自然肌理 温润美学

数码要闻

Google或正逐步淡化 Fitbit 品牌

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版