一、前言
Hello,欢迎来到流穿的AI探索之路系列专栏,作为一名AI应用工程师,我会在这儿更新一些前沿技术,欢迎关注哦。
这个问题也是前不久面试时被提问的,让我对比WebSocket和SSE,说说AI产品下处理SSE请求的方法。挺有意思就整理出来了
试想一个需求:
我们想实时了解某个数据,如果只用HTTP 协议,做不到服务器主动向客户端推送信息。只能是客户端向服务器发出轮询请求。
而轮询也存在问题:
服务端被迫维持大量不同的连接,以及由此造成的高开销
而随着LLM(大语言模型)的发展
,流式的数据传输变得越来越普遍。两种常见的实时通信技术:WebSocket和SSE(Server-Sent Events) 也进入我们视野,为什么大语言模型对话不使用WebSocket而是SSE呢?
今天就来做一个对比
二、WebSocket概述 🌐
(一)WebSocket的工作原理 🔧
WebSocket 是一种全双工通信协议 🔄,可以在客户端和服务器之间建立持久连接。一旦连接建立,双方就可以在不需要再次握手的情况下,实时双向发送数据。
WebSocket是基于TCP/IP的,基于可靠性传输协议。处于OSI七层协议中的应用层。
下面一张图说明了 HTTP 与 WebSocket 的主要区别:

💡 可以看到WebSocket和Http是有联系的,WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。
1.通信过程 📡
(1). 连接建立:通过HTTP协议进行一次"握手",升级到WebSocket协议。 (2). 数据传输: