SSE(Server-Sent Event)
SSE 简介
Server-Sent Event,是一种基于 HTTP 协议建立的服务端与浏览器之间的长连接,是一种单工通信方式,仅服务端向客户端发送消息
特点
单工通讯
长连接,server 向浏览器持续发送新数据
技术实现
基于 HTTP 协议
数据格式
文本数据
跨域
浏览器跨域限制
状态
open
message
Error
服务端使用
建立 SSE 连接
1
2
3res.writeHead(200, {
'Content-Type': 'text/event-stream',
});自定义 SSE 事件名称,默认为 message
1
res.write('event:lyrics\n');
返回数据
1
res.write(`data: ${mockData[current]}\n\n`);
客户端使用
建立 SSE 连接
1
const sse = new EventSource('/api/sse/sse');
监听消息。如果后端没有自定义事件名称,默认为 message
通过 e.data 获取消息
1
2
3
4sse.addEventListener('lyrics', (e) => {
content += e.data;
divDOM.innerHTML = content
})关闭连接
1
sse.close()
SSE(Server-Sent Event)
https://hugtyftg.github.io/2024/01/29/SSE/