消息推送的常见方式
1轮询
2长轮询
3SSE
4websocket(重点介绍)
1轮询
浏览器以指定时间间隔向服务器发出http请求,服务器返回数据给浏览器。
工作过程:浏览器发出请求,如果没有数据更新,返回空。
弊端:数据更新会有延迟;不断给服务器发送请求也会增加服务器的压力
2长轮询
浏览器发出ajax请求,服务器会把接收到的请求阻塞,直到数据更新或超时才返回。
优点:请求会被阻塞,与轮询相比,请求的时间间隔增大,减轻服务器压力。
3、SSE
server-sent event:服务器发送事件。服务器和浏览器之间打开一个单向通道,服务器有数据变更时将数据流式(text/event-stream类型数据流)传输给浏览器。
4、websocket
websocket:基于TCP连接的全双工通信协议。