忽然想说一下长轮询和短轮询html
1. 短轮询:重复发送Http请求,查询目标事件是否完成,优势:编写简单,缺点:浪费带宽和服务器资源
2. 长轮询:在服务端hold住Http请求(死循环或者sleep等等方式),等到目标时间发生,返回Http响应。优势:在无消息的状况下不会频繁的请求,缺点:编写复杂。jquery
长轮询通常用在 web im, im 实时性要求高, http 长轮询的控制权一直在服务器端,http 短轮询通常用在实时性要求不高的地方(上面的内容参考copy于https://www.cnblogs.com/hr2014/p/6203872.html)web
第一次看到SSE(server send Event 服务端发送事件)是在《Java EE开发的颠覆者spring boot实战中的4.5.3看到的,其是基于http协议的,,本质上是保持一个http长链接,客户端向服务端发送请求,在浏览器与服务器创建链接以后,等有数据更新后,服务端向浏览器主动发送消息。这样能够减小数量,减小服务器压力。还有一个用的比较多的方案是WebSocket,但我不说!!spring
须要新式浏览器的支持,消息的格式是以”data:”开头,以”\n\n“结尾,服务器端的响应的内容类型是“text/event-stream”。erver-sent Events 规范是 HTML 5 规范的一个组成部分,具体的规范文档见参考资源。该规范比较简单,主要由两个部分组成:第一个部分是服务器端与浏览器端之间的通信协议,第二部分则是在浏览器端可供 JavaScript 使用的 EventSource 对象。
而客户端对数据的通讯是经过js的EventSource来进行的,EventSource提供了三个事件:
一、open:当成功创建链接时产生
二、message:当接收到消息时产生
三、error:当出现错误时产生
直接使用便可。浏览器
模仿一个用例服务器
在index中写上,这边须要引入jquery.js:微信
浏览器访问:.net
参考:server
http://www.52im.net/thread-335-1-1.htmlhtm
https://www.cnblogs.com/hr2014/p/6203872.html
http://blog.csdn.net/lambert310/article/details/52911889
微信公众号: