1.Tomcat6&Comet的简要介绍
Comet技术的悄然流行,Jetty在比较早地支持了Comet,提供了Comet 的Servlet,同样从Tomcat6开始,Comet已经在Tomcat的标准Servlet中开始支持了,这是个好事情,毕竟我们有越来越多的选择了。
可喜的是Comet技术,已经定义在Servlet3.0规范中,到时候,我们代码的移植性更好了。
可惜的是Tomcat提供了几个Sample都不能运行,在这里需要批评一下Tomcat的开发者们了,笔者花了几天看了那个实例代码,代码写得确实有点问题,大量的同步关键字,本身其实用一个简单的例子说明就可以了,何必杀鸡用牛刀。
Tomcat的comet原理其实同样很简单,它无非就是做了一件事情,它允许servlet执行完毕后的response没有被回收,我们只要拿到这个Reponse的引用并保存起来,就可以随时从Server向Client端Push数据了。
Tomcat提供了CometProcessor接口,有这种特定标记的Servlet,Tomcat会做特殊处理,Tomcat不会把它当做普通Servlet实行完毕后,会回收request和response。
2.实战
本文实现了一个server 定时push一个随机数到client端,此例查询了大量的实例,经过笔者验证,在IE和FireFox下都可以运行。
运行此例,需要下面配置:
1) Tomcat要求支持Comet,必须使用NIO或者APR的方式,因此,修改Tomcat/conf/server.xml
<Connector port="9000" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" maxThreads="150"
redirectPort="8443" maxKeepAliveRequests="1"/>
2)Tomcat版本要求6.0.16以上,最好使用最新的版本
3) 修改附件中源码里面的web目录下的comet-compatible.jsp文件,把里面涉及IP和端口的url,改成你机器的ip地址和端口
4) 测试运行:http://ip:port/contextName/comet-compatible.jsp
请耐心等数秒钟,随机数开始从server push到client端了
源码见附件,附件的URL如下:
http://dl.iteye.com/topics/download/ee28df9d-d838-3572-be73-dbf06c11080f
注:作者本着负责的态度,让大家更快的学习新东西,欢迎大家有问题,给我留言,我一定及时回复
分享到:
相关推荐
【标题】:“Tomcat+Comet 实现终端与服务端同步的小例子” 在这个主题中,我们将探讨如何使用Apache Tomcat服务器和Comet技术来实现浏览器客户端与服务端的实时通信。Comet是一种Web应用程序设计模式,它允许数据...
这个"comet demo"是一个展示如何在Java环境下利用Tomcat服务器实现Comet技术的实例。Tomcat 6.0是Apache软件基金会开发的开源Servlet容器,支持各种Java Web应用的部署,包括Comet技术。 首先,Comet的核心在于保持...
如描述中所述,`comet4j-tomcat7.jar`是专门为Tomcat6和Tomcat7设计的版本,这意味着它已经针对这两个版本的Tomcat进行了优化和适配。请注意,如果尝试在更高版本的Tomcat上运行,可能需要寻找对应的更新版本或进行...
标题中的"jar包"指的是Comet4j的可执行库文件,通常用于Java开发环境中,包含了Comet4j的核心功能和API。开发者可以将这些jar包添加到项目类路径中,以便调用Comet4j提供的服务。 描述中提到的"comet4j.js"是一个...
6. **WebSocket与 Comet技术**:讲解基于Tomcat的实时通信技术,如WebSocket的实现,以及Comet的原理和应用。 7. **Tomcat集群与负载均衡**:讨论如何通过Tomcat实现应用的集群部署,以及负载均衡策略的配置。 8. ...
- 创建Comet服务:在服务器端,你需要创建一个Comet服务实例,设置监听端口和处理逻辑。 - 注册事件处理器:定义事件处理器类,处理来自服务器的数据推送事件。 - 客户端连接:在客户端,通过JavaScript或者Ajax...
Tomcat9.0作为其最新的稳定版本,提供了许多增强功能和性能优化,使其在中小型企业和开发环境中广泛应用。 首先,让我们深入了解Tomcat服务器的核心组件和工作原理: 1. **Catalina**:这是Tomcat的主要部分,负责...
1. **下载服务端JAR文件**:Comet4j目前只支持Tomcat 6和7,根据你的Tomcat版本,下载对应的`comet4j-tomcat6.jar`或`comet4j-tomcat7.jar`,将其放入`WEB-INF\lib`目录。 2. **修改服务器配置**:由于Comet4J工作...
- **示例应用**:展示如何使用Comet4J的简单Web应用实例,包括HTML、CSS和JavaScript文件,帮助开发者快速理解和上手。 - **文档**:可能包括用户指南、API文档和示例说明,详细解释了如何配置和使用Comet4J框架。 -...
总的来说,`comet4j`为开发实时Web应用提供了一个高效且易用的解决方案,通过掌握这一技术,你可以在构建高交互性的Web应用时更加游刃有余。在实际项目中,结合其他前端框架如Ajax、WebSocket等,可以构建出更加复杂...
它还支持JMX(Java Management Extensions),允许通过JMX管理工具远程监控和管理Tomcat实例。 总的来说,Apache Tomcat 5.5.31是Java Web开发的重要组成部分,虽然现在有更新的版本,但其稳定性和广泛的社区支持...
Comet4j demo是展示如何使用Comet4j框架构建实时通信应用的一个实例,尤其是用于实现聊天功能。 在Web开发中,传统的Ajax技术存在效率问题,因为客户端需要不断地发送请求来检查服务器是否有新的数据。这不仅消耗了...
1. **配置Servlet容器**:确保Servlet容器(如Tomcat)支持长连接,可能需要调整某些配置参数以适应Comet4j的运行需求。 2. **引入依赖**:将Comet4j的JAR包添加到项目的类路径中,如果是Maven项目,可以通过在pom....
在给定的例子中,我们可以推测这是一个使用Eclipse开发的WebSocket应用实例,它依赖于Tomcat 7.0以上版本的服务器和Java 7.0以上的JDK运行环境。Eclipse是一个广泛使用的Java集成开发环境,适合开发各种Java应用程序...
【服务推实例】是关于Java Web应用程序中实现服务器推送(Server-Sent Events, SSE)或Comet技术的一个示例。这个例子旨在展示如何在Web页面和Java后台之间实现实时通信,让服务器能够主动向客户端推送数据,而不...
项目的描述中提到,它已经在Tomcat服务器上进行了配置,并且包括了所有必要的jar包,这意味着开发者可以直接下载并运行,无需额外寻找依赖。这使得部署和测试过程更为便捷。此外,项目经过了实际运行的验证,确保了...
总结来说,"一个基于pushlet推送的小例子"是一个展示如何在Tomcat服务器上利用Pushlet框架实现Comet技术的实例。通过这个例子,开发者可以学习到如何构建和部署一个能够进行服务器端数据推送的Web应用,这对于需要...