赞
踩
一、SSE 的本质
HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。
也就是说,发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,客户端不会关闭连接,会一直等着服务器发过来的新的数据流,视频播放就是这样的例子。本质上,这种通信就是以流信息的方式,完成一次用时很长的下载。
SSE 就是利用这种机制,使用流信息向浏览器推送信息。它基于 HTTP 协议,目前除了 IE/Edge,其他浏览器都支持。
三、集成
SpringMVC内置SseEmitter类内置了一些方法,方便我们使用SSE(Server Sent Event)向浏览器推送数据。
1.sse机制不同于传统的“请求-响应”模型,在前端必须使用EventSource对象请求我们的接口,创建一个连接,
var source = new EventSource('url');
withCredentials:表示是否一起发送 Cookie。
var source = new EventSource(url, { withCredentials: true });
2.然后监听服务端发送过来的事件。
下图中监听的为服务端通过我们上面创建的连接发送过来的message(默认)事件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。