一. 概念和作用

其定义详见: HTML Standard

SSE(server-sent events) 与 WebSocket 作用相似,都是建立浏览器与服务器之间的通信渠道,然后服务器向浏览器推送信息。

二. 与 WebSocket 的区别

其与 WebSocket 的区别如下:

WebSocket EventSource
双向:客户端和服务端都能交换消息 单向:仅服务端能发送消息
二进制和文本数据 仅文本数据
WebSocket 协议 常规 HTTP 协议

三. 优点

我们为什么要使用它?主要原因:简单。

在很多应用中,WebSocket 有点大材小用。比方说我们需要从服务器接收一个数据流,可能是聊天消息或者市场价格等,这正是 EventSource 所擅长的。它还支持自动重新连接,而在 WebSocket 中这个功能需要我们手动实现。此外,它是一个普通的旧的 HTTP,不是一个新协议。

参考

Server-sent events - Web APIs | MDN

Server-Sent Events 教程 - 阮一峰的网络日志

Server Sent Events