1. SSE技术概述
1.1 SSE基本原理
服务器发送事件(Server-Sent Events,SSE)是一种允许服务器向浏览器推送实时更新的技术。它基于HTTP协议,通过建立一个持久连接,使服务器能够主动向客户端发送数据。
- 工作流程:客户端通过在JavaScript中使用
EventSource
接口发起请求,连接到服务器指定的URL。服务器端接收到请求后,保持连接打开状态,并通过特定的响应头Content-Type: text/event-stream
和Cache-Control: no-cache
等标识这是一个SSE连接。随后服务器可以随时向客户端发送数据,客户端通过监听message
事件接收这些数据。例如,当服务器端有新的数据产生时,它会按照一定的格式(如data: <message>\n\n
)发送数据,客户端的EventSource
对象会触发message
事件,开发者可以在事件处理函数中对数据进行处理和展示。 - 数据格式:SSE的数据格式相对简单,以
data:
开头,后面跟着要发送的消息内容,消息之间通过两个换行符\n\n
分隔。这种格式使得服务器可以方便地生成和发送消息,客户端也能够轻松解析和处理。例如,服务器可以发送如下格式的数据:
d