SSE
全称为 Server-sent Events
。即服务端推送事件。
在实际业务中,我们可以利用 SSE
向客户端不间断的推送实时信息。
1.优点
SSE
具有以下特点:
- 单向通信。只能由服务端向客户端推动消息。而
websocket
属于全双工通信; - 依赖HTTP协议。而
websocket
依赖的是ws
或者wss
协议; - 传输数据只能是文本数据。而
websocket
可以传输二进制和文本数据; - 持久化连接。与
websocket
类似,Connection
的值为keep-alive
;(且SSE
的连接,客户端会不断发送请求,除非显示调用source.close()
实例方法关闭连接。) - 特有的重连机制。在网络不好或者连接出错时,
SSE
会自动retry
连接。
2.缺点
由于 SSE
依赖 HTTP
协议的keep-alive长连接,
而 keep-alive
长连接在浏览器客户端的并发量是有上限的。一般上限为 6
。
因此,在业务开发中,如果同时存在超上限的连接数,有可能会出现网络阻塞。