有的时候服务端需要向客户端推送数据,比如聊天,通知等。有多种服务端推送消息的技术,比如简单的轮询,websocket协议,sse,各有千秋。

现状

轮询

websocket

sse

SSE全称Server-sent Events,是HTML 5 规范的一个组成部分。
主要由两个部分组成:第一个部分是服务器端与浏览器端之间的通讯协议,第二部分则是在浏览器端可供 JavaScript 使用的 EventSource 对象。通讯协议是基于纯文本的简单协议。服务器端的响应的内容类型是“text/event-stream”。响应文本的内容可以看成是一个事件流,由不同的事件所组成。每个事件由类型和数据两部分组成,同时每个事件可以有一个可选的标识符。不同事件的内容之间通过仅包含回车符和换行符的空行(“\r\n”)来分隔。每个事件的数据可能由多行组成。