COMET彗星(一)SERVER PUSH介绍
2009-01-17 03:26
162 查看
COMET介绍:
还在为AJAX赞叹的时候,COMET竟也悄悄降临,更有甚者已经将COMET比作是AJAX的接班人。暂且不考虑服务性能和维持connection的负担,COMET的日益走红,让SERVER PUSH这样在传统C/S模式下需要借助线程服务和SOCKET通信的实现,衍生成为了借助事件和Script注册机制的WEB应用框架。SERVER PUSH就如同它自己的名字一样,将更多华丽的web体验“推”进了我们的视野。
一位叫Grace Lin的工程师在自己的博客中对应用SERVER PUSH技术的在线股票系统进行了一番详细的介绍 。(地址:http://www.zkoss.org/smalltalks/stockchart/)同时,更是有很多IM应用涌现出来。本主题将从AJAX和COMET两者的结构特点进行比较,同时层层深入剖析COMET技术特点,和相应应用。
AJAX技术框架:
大家都理解AJAX的结构,这里不再深入探究。AJAX的框架千奇百怪,但实际上就是强调了异步这个特点:数据请求后,异步的服务器处理和用户界面操作。图1.2 AJAX异步通讯模型
似乎一切都是那么完美,但是实际上AJAX只是实现了单用户的响应回调,与服务器的异步通讯,但是并不能反映多用户的协同相应。一个页面中同时存在的多个AJAX的异步很可能让用户修改了没有显示出来的数据,在逻辑上存在数据库事务中“脏读”或者“幻影读”的概念,还没有看到数据,发出下一个请求(当然请求是发送到了别的页面元素,但愿有页面元素中仍然是刷新了未修改的AJAX请求信息。)这些似乎都是AJAX的软肋。而COMET实际上就是解决这些问题的解决框架。
COMET技术框架:
图2.1 AJAX与COMET框架对比
在应用COMET框架的网页中,页面初始化后,会维持一连接,同时监听服务器端的事件信息。服务器通过事件机制来完成对浏览器(也可以是客户端)的“推”机制。
不同客户端同时监听到服务器端的事件,并获得服务器传来的数据,而每一个客户端的请求都变成服务器的事件在网络中进行“广播”。
当然COMET需要基于特定的服务器环境,这也是它与AJAX的很大不同。
网上出现过基于客户端的服务器推技术,实际上都是使用IFRAME,APPLET,FLASH这样的元素实现的长连接,在http://www.ibm.com/developerworks/cn/web/wa-lo-comet/一文中,IBM工程师对这几者做了相应介绍,有时间的话,可以做几个demo出来与大家交流,但下一篇中,还是为大家分析一个基于comet的IM框架。
相关文章推荐
- COMET彗星(二)基于SERVER PUSH的消息传输
- COMET彗星(二)基于SERVER PUSH的消息传输
- COMET彗星(一)SERVER PUSH介绍
- Comet (Server Push)
- New Adventures in Comet: Throttling the Server push
- HTTP 笔记与总结(9)分块传输、持久链接 与 反向 ajax(comet / server push / 服务器推技术)
- 使用Ajax建立的Server Push和Iframe建立的Comet
- Server-push技术(comet)----------asp.net中的异步处理+client与服务器端的长连接 (续)
- Comet基于iframe的服务器推送(Server Push)例子
- Server-push技术(comet)----------asp.net中的异步处理+client与服务器端的长连接
- comet server 的介绍及方案选型
- comet(server push)技术
- Comet: ajax server push
- Comet:基于 HTTP 长连接的 Server PUSH
- CGI Server Push(CGI Comet) study
- 基于nginx_http_push_module模块让nginx变成Comet Server
- 一起谈.NET技术,Server-push技术(comet)----------asp.net中的异步处理+client与服务器端的长连接
- 服务器推送技术Server Push详解[转]
- SQL Server Parallel Data Warehouse (PDW) 介绍
- Struts2中的标签介绍 s:property s:set s:bean s:push s:date