# 五.数据通信 API
# PostMessage
# XMLHttpRequest API
# Fetch API
# Beacon API
# WebSocket
刷新
全屏/自适应
# EventSource API
# Server-sent Events
前言
EventSource 是服务器推送的一个网络事件接口。一个 EventSource 实例会对 HTTP 服务开启一个持久化的连接,以 text/event-stream 格式发送事件,会一直保持开启直到被要求关闭
/*
* new EventSource(url, configuration)
* url:请求地址路径
* configuration 可选项:withCredentials,默认为false,指是否CORS设置
*
*/
const eventSource = new EventSource("/api/stream")
// 正常的EventSource,我们只关心以下三个事件
/*
* open:订阅成功(和后端连接成功)
*/
eventSource.addEventListener("open", function (e) {
console.log("open successfully")
})
/*
* message:后端返回信息,格式可以和后端协商
*/
eventSource.addEventListener("message", function (e) {
console.log(e.data)
})
/*
* error:错误(可能是断开,可能是后端返回的信息)
*/
eventSource.addEventListener("error", function (err) {
console.log(err)
// 类似的返回信息验证,这里是实例
err && err.status === 401 && console.log("not authorized")
})
// 需要关闭了
eventSource.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
刷新
全屏/自适应
# WebRTC API
刷新
全屏/自适应