EventSource
当不使用 HTTP/2 时, 服务器发送事件(SSE)受到打开连接数(6)的限制, 这个限制是针对浏览器的. 每个浏览器的所有标签页中对相同域名的连接数最多支持 6 个
当使用 HTTP/2 时, 最大并发 HTTP 流的数量是由服务器和客户端协商的(默认为 100)
Web 内容与服务器发送事件通信的接口, 通信方向是单向的, 数据消息只能从服务器发送到客户端. 如果接收消息中有一个 event 字段, 触发的事件与 event 字段的值相同, 如果不存在 event 字段, 则将触发通用的 message 事件
- url, 表示远程资源的位置
- configuration, 可选, 一个对象
- withCredentials, 标识 CORS 是否包含凭据, 默认为 false
1 | const sse = new EventSource(url, configuration); |
实例属性
- readyState, 标识连接状态的数字
- CONNECTING(0)
- OPEN(1)
- CLOSED(2)
- url, 表示远程资源的位置的字符串
- withCredentials, 标识是否使用跨域资源共享(CORS)凭据来实例化
实例方法
- close(), 关闭链接, 并将 readyState 属性设置为 CLOSED
事件
- error, 连接失败时触发
- message, 接收到数据时触发
- open, 连接打开时触发
1 | const sse = new EventSource('/api/v1/sse'); |