SSE(serve send event)
基于HTTP协议,通过持久的HTTP连接,使服务端可以持续地向客户端发送信息流,传输的数据是文本格式。
- SSE请求头
'Accept': 'text/event-stream', // 声明客户端希望接收一个事件流
'Cache-Control': 'no-cache', // 禁止缓存,确保每次都能获取最新数据
`Last-Event-ID`:这个头是 SSE 自动重连机制的一部分。当连接断开并重新连接时,客户端会将收到的最后一个事件的 ID 发送给服务器,服务器可以根据这个 ID 从断开的地方继续推送数据,避免数据丢失。
- SSE接收头
`Content-Type: text/event-stream`:告诉浏览器响应体是一个事件流。
`Connection: keep-alive`:指示客户端保持连接开放。
`Cache-Control: 'no-cache'
- SSE响应体
`data:` 开头,并以双换行符 (`\n\n`) 结束。
`id:`:可选,指定事件 ID,用于重连时恢复数据。
`retry:`:可选,指定客户端在重连时的等待时间(毫秒)