# 五.数据通信 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
刷新
全屏/自适应

# WebRTC API

刷新
全屏/自适应

# ProgressEvent