SSE(Server-Sent Event)

SSE 简介

Server-Sent Event,是一种基于 HTTP 协议建立的服务端与浏览器之间的长连接,是一种单工通信方式,仅服务端向客户端发送消息

特点

单工通讯

长连接,server 向浏览器持续发送新数据

技术实现

基于 HTTP 协议

数据格式

文本数据

跨域

浏览器跨域限制

状态

open

message

Error

服务端使用

  1. 建立 SSE 连接

    1
    2
    3
    res.writeHead(200, {
    'Content-Type': 'text/event-stream',
    });
  2. 自定义 SSE 事件名称,默认为 message

    1
    res.write('event:lyrics\n');
  3. 返回数据

    1
    res.write(`data: ${mockData[current]}\n\n`);

客户端使用

  1. 建立 SSE 连接

    1
    const sse = new EventSource('/api/sse/sse');
  2. 监听消息。如果后端没有自定义事件名称,默认为 message

    通过 e.data 获取消息

    1
    2
    3
    4
    sse.addEventListener('lyrics', (e) => {
    content += e.data;
    divDOM.innerHTML = content
    })
  3. 关闭连接

    1
    sse.close()

SSE(Server-Sent Event)
https://hugtyftg.github.io/2024/01/29/SSE/
作者
mmy@hugtyftg
发布于
2024年1月29日
许可协议