为提高用户体验,我们在处理一些长时间的任务中总希望提供进度条来显示任务完成情况。一般采用两种方式完成:一、客户端定时访问服务端获得进度信息并显示。二、服务端定时向客户端推送进度信息,客户端显示收到的进度。
这二种方式分别具有一下优缺点:
1.客户端定时访问:
- 缺点:效率比较低,频繁的访问服务端消耗服务端资源。在权限系统中可能造成权限不能过期问题(timeout)。
- 优点:服务端处理比较简单。
2.服务端定时推送:
- 缺点:服务端处理程序比较复杂,需要掌握一定的线程知识。可能还需要应用服务器支持。
- 优点:效率较高。
第一种实现方式,网上有非常多的实现并且其固有的缺点所以没有实现。这里只实现了服务端推送方式,工程在附件中。
工程中实现了二种方法推送进度:
1.通过Tomcat comet 实现(
http://tomcat.apache.org/tomcat-6.0-doc/aio.html)。
- 缺点:只能绑定tomcat 6.0以上版本,需要对服务器进行配置,使用正确的协议(如:org.apache.coyote.http11.Http11NioProtocol等)。
- 优点:客户端开发比较简单,不需要太多学习。
2.通过pushlet实现
http://www.pushlets.com。
- 缺点:需要学习了解pushlet的使用。
- 优点:适合主流web服务器,一旦学会使用还是比较简单。
我认为如果功能简单又使用Tomcat 6.0以上服务器,可以采用Tomcat comet。如果应用比较复杂最好采用pushlet,可能为了适合应用你可能需要扩展它,好在pushlet不算复杂,一般看看资料和源代码就会明白其原理,也就不难对其进行扩展。因为推送机制主要在后台完成,所以后台代码比较复杂,如果你不太了解线程最好先学习一下。
具体实现参考附件中的工程。开发IDE是Eclipse。如有疑问可以邮件hhywangwei@gmail.com共同探讨。
注意使用Tomcat comet 实现需要修改协议为protocol="org.apache.coyote.http11.Http11NioProtocol"。
- 大小: 123.8 KB
分享到:
相关推荐
tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不刷新显示。tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不刷新显示。tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不...
javaweb消息推送 基于comet实现局域网内部通讯(聊天室)demo 功能特性 推送消息广播。 推送定向消息。 提供连接上线前、上线、下线前、下线、发送消息等多种可处理事件。 消息缓存机制,确保长轮询工作模式下不丢失...
pushlet 和comet 资料介绍 介绍如何从服器端push subscrite 给浏览器
http长连接comet pushlet 例子 导入eclipse 直接能用
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
通过tomcat服务器,向网页发送即时消息。comet的小例子,可以直接运行,用tomcat6.0。
DWR+JAVA进行web消息推送dwr-comet.zip
tomcat7后台服务器,java项目实现后台推送信息到客户端浏览器
使用服务器端推送数据,实现客户端数据的刷新,减少服务器压力,资源......
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
对comet实现中的pushlet框架进行说明,可以参照该说明进行框架使用
Servlet3.0 异步处理 页面推送 Comet 实例
comet4j 自己写的消息推送 觉得实用
NULL 博文链接:https://zkeshun.iteye.com/blog/1391922
这是一个利用comet4j第三方插件,实现javaweb项目中后台消息向前台推送的一个功能,前台只要利用jquery,后台是用java实现,tomcat用7的版本
pushlet简单demo,导入即可运行 Java 推送 长连接 轮询 pushlet comet4j
此资源包中包含了tomcat7所需要的jar包与comet4j.js请各位自取,谢谢!
comet4j消息推送所需的comet4j-tomcat7.jar包,comet4j-tomcat7.jar
(2)基于Ajax推送Ajax主要是基于浏览器发送异步请求,提高用户操作的响应性 (1)基于 AJAX 的长轮询方式长轮询:HTTP的连接保持,服务器端会阻塞请