什么是Server-Sent Events
从名字可以看出,服务器发送事件(Server-Sent Events)是一种服务端向客户端推送消息的方法。服务器发送事件规范(Server-Sent Event)描述了一个内置的类EventSource
,它可以用来与服务器保持链接并且可以从服务器接收时间。
和WebSocket
类似,这个链接是持久的,但是两者有一些不同:
WebSocket | EventSource | |
通信方向 | 双向:客户和服务器都可以交换信息 | 单向:只有服务器能发送数据 |
消息类型 | 可以发送文本以及二进制消息 | 只能发送文本消息 |
网络协议 | WebSocket协议 | 常规HTTP协议 |
从上表可以看出,Server-Sent Event
(以下简称SSE)相比WebSocket
是一种更轻量的消息推送方式。SSE使用常规HTTP协议,并且支持断线重连 ,无需额外实现。SSE使用相对来说更简单——在服务器端,只需要按照一定格式返回消息;在客户端中,只需要为一些事件类型绑定监听函数,和处理其他普通的事件没多大区别。…