来自:http://www.pussor.com/?p=3
官网:http://www.pushlets.com/
Ajax等Web 2.0技术的广泛应用,推动了C/S向B/S的转变,如今很多应用如监控、即时通信等系统都需要实时同步服务器端和客户端的数据更新。Comet在这种需求下应运而生,本文简单介绍了基于Comet的开源框架Pushlet。
Comet基础
Comet 是一个用于描述客户端和服务器之间的交互的术语,即使用长期保持的 HTTP 连接来在连接保持畅通的情况下支持客户端和服务器间的事件驱动的通信。
—引用自“Comet的诱惑”
传统的web系统的工作流程是客户端发出请求,服务器端进行响应,而Comet则是在现有技术的基础上,实现服务器数据、事件等快速PUSH到客户端,所以会出现一个术语”服务器推“技术。
PUSH实现方式
JSP/SERVLET PUSH
原理:
利用JSP/SERVEL技术,在不关闭HTTP流的情况下PUSH数据到客户端浏览器;
实现:
基于 AJAX 的长轮询(long-polling)方式
AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面的显示进行更新。使用 AJAX 实现“服务器推”与传统的 AJAX 应用不同之处在于:
- 服务器端会阻塞请求直到有数据传递或超时才返回。
- 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
- 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重 新建立连接,客户端会一次把当前服务器端所有的信息取回。
Pushlet实例
以Pushlet中的ping案例来进行分析:
- 新建一个Web项目取名ping,并导入Pushlet的jar包;
- 在src目录下配置sources.properties、pushlet.properties文件;
- webroot目录下导入js-pushlet-client.js,js-pushlet-net.html;
- 新建TestEventPullSources.java;
- 新建index.html,引入js-pushlet-client.js;
- 新建pingok.jsp;
- 修改web.xml加上pushlet的servlet
- 打包、部署ping项目;
实例1 Pushlet CookBook部分翻译 + 注释
pushlet 2.0.3 源码分析(服务器端)
posted on 2010-04-23 13:38
junly 阅读(6162)
评论(1) 编辑 收藏 所属分类:
other