SSE(Server-Sent Events)是一种服务器推送技术,这种技术基于HTTP协议,利用HTTP的长连接特性,在客户端与服务器之间建立持久化连接,并通过该连接实现服务器向客户端的实时数据推送(应用于当前市面上的聊天语言模型,比如文心一言、chatgpt等)。SSE建立了一个从服务器到客户端的单向通道,服务器通过这个通道可以持续地向客户端发送事件流,而无需客户端进行显式的请求。服务器发送的事件流是由一系列的事件组成的,每个事件都以特定的格式呈现,包含一个或多个字段,如事件的名称、数据内容和可选的ID。
SSE主要关注的是服务器与客户端之间的通信协议和机制,它定义了一个标准,不同的服务器和客户端有不同的实现方式。
客户端:
SSE的实现主要通过JavaScript的EventSource接口来完成。几乎所有的现代浏览器都支持EventSource接口,这使得SSE具有广泛的兼容性。客户端通过创建EventSource对象并指定服务器发送事件的URL来建立与服务器的连接。一旦连接建立,服务器就可以通过该连接向客户端发送实时更新。
但是,标准的Ev