HTTP1.1协议具备的,TCP连接一直不断保持着,Connection:keep-alive头来验证是否支持。
Web交互方式
普通轮询:普通的前后端通信方式,请求中多半无用,可以使用HTTP长连接技术;可以使用AJAX(XMLHttpRequest类),也可以使用ifram方式请求;实时性差。
长轮询:对于有实时性要求的场景(其实在两次连接之间,还是会有实时性问题),客户端发送请求后,后端hold住,有数据时才返回,客户端收到后断开,再启用新的请求进行连接,通过这样的方式模拟服务端推送。节省了反复建立连接的开销,但是服务器端会一直while保持着连接消耗资源,服务器端需要设置好超时时间(set_time_limit),有数据时返回(flush&ob_flush)超时时间内如果没有数据返回,则需要跳出断开连接,以免死循环。这种模式被称为反向AJAX/Comet,由服务器端进行数据实时推送。问题是:服务端开销依然很大,每次通信都需要一次请求,HTTP请求头中带大量Cookie等信息,浪费带宽。IE不支持AJAX,因此需要iframe代替。
SSE(Server-Sent Evetns):HTML5的Comet方案。SSEAPI创造到服务器端的单向连接,服务端推送的模式,服务器响应的MINE必须是“text/event-stream”,用于服务器端给客户端实时传数据,只进行一次连接,则后续服务端可以一直传送数据。
数据流:在长轮询的基础上,收到数据后不要断开连接,继续接受服务端数据;由于数据流是不断的,所以需要客户端自己来处理解析数据和管理游标,增量处理获得的数据,增加了逻辑复杂度。
Websocket:替代长轮询方式,减少开销。
数据推送是云计算的特点。
云计算的数据推送方法、装置、电子设备及系统时。应用本申请方案,能够在用户行为数据的第一特征向量的基础上进一步挖掘额外的特征维度,提高对用户行为数据的特征分析的效率和全面性,避免遗漏特征维度。
这样,能够准确、完整地确定出用户行为数据对应的目标特征向量,然后基于该目标特征向量准确地确定期望数据并进行推送,进而提高云端服务器在数据推送过程中的推送准确性,避免数据的误推送。
数据推送介绍
如今,数据推送技术在网站和Web应用中得到了广泛应用,比如在拍卖网络应用中推送出价,在售书网站推送新评论,在在线游戏中推送新高分,推送用户感兴趣的微博,等等。
本书是一本简明的数据推送技术指南,作者通过构建一个真实的例子,手把手地向读者展示如何利用HTML5 SSE(Server-Sent Events,服务端推送事件)这项非凡的技术,无需轮询或者用户交互,就可以将数据从服务器端推送到客户端。