说明:最近公司要用单长链接技术,选用comet,在此我提供一个简单的demo
1. comet说明
A comet长连接大致有两种实现, 第一种是采用长轮询机制实现,大致过程是:由客户端发起http请求,服务器收到这个请求后,进入一个 while(ture)的循环,当有数据需要告知客户端时,将数据响应给客户端,并断开连接。客户端收到信息后进行处理,处理完成后再次发起新的请求,这就是长轮询的长连接实现。当然,客户端一般都采用ajax方式发起请求。
B comet另一种采用基于流的方 式实现,利用ajax的readystate为3时表示数据正在传输而保持连接不中断,服务器端可以使用基于NIO的方式提高处理效率,而不是 while(true)的多线程方式。更多关于comet的实现细节,大家可以参阅http://software.intel.com/zh-cn/articles/comet-java-realtime-system-essay/。
简单demo例子
a 准备zar包:comet4j.js 和 comet4j-tomcat7.jar
b.配置server.xml
1 | <Connector connectionTimeout= "20000" port= "8080" protocol= "org.apache.coyote.http11.Http11NioProtocol" redirectPort= "8443" /> |
C.修改web.xml
D HelloWork.java
E 页面
demo附上