服务器推送技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简介
• 服务器推送技术的基础思想是将浏览器主 动查询信息改为服务器主动发送信息。 服务器发送一批数据,浏览器显示这些数 据,同时保证与服务器的连接。当服务器 需要再次发送一批数据时,浏览器显示数 据并保持连接。以后,服务器仍然可以发 送批量数据,浏览器继续显示数据,依次 类推 。
应用举例
• 监控系统:报警提示; • 即时通信系统:其它用户登录、发送信息; • 即时报价系统:后台数据库内容发生变化; • 实现基于web的实时事件通知 。
Pushlet项目实际应用
• 广电三期项目的服务器异常报警和ver:消息和RMI/CORBA需要单独 的server产品。Pushlet理论上可以在任何server引擎上运 行,并具备连接管理和多线程能力。
缺点: (1)跨越浏览器的DHTML:Pushlet需要使用
能工作在任何平台、所有浏览器版本的DHTML库。 (2)可测量性:当100个以上的client通过
与客户端拉曳(Client Pull) 的比较
• 客户端拉曳:客户端定时去查询服务器上的 最新数据。
优缺点
• 与客户端拉拽方式对比 优点:服务器完全能够控制客户端更新
数据的时间和频率 。
缺点:保持连接状态会浪费服务器端的 资源。服务器推送还比较容易中断 。
实现了comet的相关开源框架
• pushlet • dwr • cometD
优点: (1)直接与浏览器中的DHTML集成。 (2)标准的HTTP端口和协议:消息和RMI/CORBA使用
非标准端口(相对HTTP标准端口而言),遇到“防火 墙”、“禁止回调”、“禁止接收UDP数据”的浏览器安 全限制时可能无法工作。
(3)client负载:基于CORBA/RMI的Java applet使 client在启动时更加沉重,并消耗更多的资源。
服务器推送技术(Comet)
议题
• 简介 • 应用举例 • 服务器推送(Server Push) 方式 • Comet应用实现模型 • 与客户端拉曳(Client Pull) 的比较 • comet优缺点 • 实现了comet的相关开源框架 • pushlet简介 • pushlet优缺点 • pushlet广电项目的实际应用
服务器推送(Server Push) 方式
• 基于客户端套接口 : 采用RMI、CORBA或者自定义TCP/IP
信息的applet来实现 。
• Comet: 基于 HTTP 长连接、无须在浏览器端
安装插件的技术 。
Comet应用实现模型
• 基于 AJAX 的长轮询(long-polling) 即服务端阻断前一次对客户端的回应,在事件发生后
Pushlet连接到server时,server上的线程和 socket资源都将出现紧张。而解决这一问题的方 式就是使用单独的Pushlet服务器。
(3)Web server问题:一般的web server往 往不是为长连接而设计的。针对这一问题的解决 方案与上面的可测量性相同。
(4)代理缓存:一些代理服务器可能缓存 HTTP数据。
将事件内容绑定在回应中返回给客户端,同时回应结束, 此时客户端立即发送第二次请求,服务器阻塞回应等待下 一次事件发生。
• 基于 Iframe 及 htmlfile 的流(streaming)方式 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐
蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就 能源源不断地往客户端输入数据。即服务器阻断客户端的 回应,服务器没有关闭回应而是一直保留这这个到客户端 的输出流。
pushlet简介
• 工作原理: 通过servlet(或者JSP)把JavaScript
代码作为HTTP流推送到浏览器。这些代码 被浏览器的JavaScript引擎解释并完成一些 有趣的工作。于是便轻松地完成了从server 端的Java到浏览器中的JavaScript的回调。
Pushlet优缺点