comet:基于 http 长连接的“服务器推”技术

comet:基于 http 长连接的“服务器推”技术

ID:19677205

大小:110.50 KB

页数:10页

时间:2018-10-04

comet:基于 http 长连接的“服务器推”技术_第1页
comet:基于 http 长连接的“服务器推”技术_第2页
comet:基于 http 长连接的“服务器推”技术_第3页
comet:基于 http 长连接的“服务器推”技术_第4页
comet:基于 http 长连接的“服务器推”技术_第5页
资源描述:

《comet:基于 http 长连接的“服务器推”技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2007年8月31日很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了Comet-使用HTTP长连接、无须浏览器安装插件的两种“服务器推”方案:基于AJAX的长轮询方式;基于iframe及htmlfile的流方式。最后分析了开发Comet应用需要注意的一些问题,以及如何借助开源的Comet框架-pushlet构建自己的“服务器推”应用。“服务器推”技术的应用传统模式的Web系统以客户端发

2、出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如:·监控系统:后台硬件热插拔、LED、温度、电压发生变化;·即时通信系统:其它用户登录、发送信息;·即时报价系统:后台数据库内容发生变化;这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用RMI、CORBA进行远程调用;而另一类则无须浏览器安装任何插件、基于HTTP长连接。将“

3、服务器推”应用在Web程序中,首先考虑的是如何在功能有限的浏览器端接收、处理信息:1.客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。客户端呈现给用户的是HTML页面还是Javaapplet或Flash窗口。如果使用套接口和远程调用,怎么和JavaScript结合修改HTML的显示。2.客户与服务器端通信的信息格式,采取怎样的出错处理机制。3.客户端是否需要支持不同类型的浏览器如IE、Firefox,是否需要同时支持Windows和Linux平台。基于客户端套接口的“服务器推”技术Fla

4、shXMLSocket如果Web应用的用户接受应用只有在安装了Flash播放器才能正常运行,那么使用Flash的XMLSocket也是一个可行的方案。这种方案实现的基础是:1.Flash提供了XMLSocket类。1.JavaScript和Flash的紧密结合:在JavaScript可以直接调用Flash程序提供的接口。具体实现方法:在HTML页面中内嵌入一个使用了XMLSocket类的Flash程序。JavaScript通过调用此Flash程序提供的套接口接口与服务器端的套接口进行通信。JavaSc

5、ript在收到服务器端以XML格式传送的信息后可以很容易地控制HTML页面的内容显示。关于如何去构建充当了JavaScript与FlashXMLSocket桥梁的Flash程序,以及如何在JavaScript里调用Flash提供的接口,我们可以参考AFLAX(AsynchronousFlashandXML)项目提供的SocketDemo以及SocketJS(请参见参考资源)。Javascript与Flash的紧密结合,极大增强了客户端的处理能力。从Flash播放器V7.0.19开始,已经取消了XMLS

6、ocket的端口必须大于1023的限制。Linux平台也支持FlashXMLSocket方案。但此方案的缺点在于:1.客户端必须安装Flash播放器;2.因为XMLSocket没有HTTP隧道功能,XMLSocket类不能自动穿过防火墙;3.因为是使用套接口,需要设置一个通信端口,防火墙、代理服务器也可能对非HTTP通道端口进行限制;不过这种方案在一些网络聊天室,网络互动游戏中已得到广泛使用。JavaApplet套接口在客户端使用JavaApplet,通过java.net.Socket或java.ne

7、t.DatagramSocket或java.net.MulticastSocket建立与服务器端的套接口连接,从而实现“服务器推”。这种方案最大的不足在于Javaapplet在收到服务器端返回的信息后,无法通过JavaScript去更新HTML页面的内容。基于HTTP长连接的“服务器推”技术Comet简介浏览器作为Web应用的前台,自身的处理功能比较有限。浏览器的发展需要客户端升级软件,同时由于客户端浏览器软件的多样性,在某种意义上,也影响了浏览器新技术的推广。在Web应用中,浏览器的主要工作是发送请

8、求、解析服务器返回的信息以不同的风格显示。AJAX是浏览器技术发展的成果,通过在浏览器端发送异步请求,提高了单用户操作的响应性。但Web本质上是一个多用户的系统,对任何用户来说,可以认为服务器是另外一个用户。现有AJAX技术的发展并不能解决在一个多用户的Web应用中,将更新的信息实时传送给客户端,从而用户可能在“过时”的信息下进行操作。而AJAX的应用又使后台数据更新更加频繁成为可能。图1.传统的Web应用模型与基于AJAX的模型之比较“服务器推”是一种

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。