参考地址 :http://code.google.com/p/comet4j/wiki/HelloWorld#%E5%AE%A2%E6%88%B7%E7%AB%AF 这是配置TOMCAT的
今天终于用comet4J实习了轮询,在过程中,明白了许多。一定要细心。我也终于可以完成这篇博客了。
首先是必须要的jar包和js文件,这些东西我会上传。
helloworld.jsp:
<%@ page contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'helloworld.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="<%=basePath%>js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<%=basePath%>js/comet4j.js"></script>
<script type="text/javascript" src="<%=basePath%>js/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="<%=basePath%>js/jquery.messager.js"></script>
<script type="text/javascript">
$(function(){
JS.Engine.on('hello',function(text){
//alert(text);// 其中text就是从后台传过来的数据
$.messager.show('<font color=red>自定义标题</font>', text+'<font color=green style="font-size:14px;font-weight:bold;">自定义内容</font>');
});
JS.Engine.start('conn');
});
</script>
</head>
<body >
</body>
</html>
HelloWorld.java
package org.comet4j.demo.helloworld;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.comet4j.core.CometContext;
public class HelloWorld implements ServletContextListener {
private static final String CHANNEL = "hello";
public void contextInitialized(ServletContextEvent arg0) {
CometContext cc = CometContext.getInstance();
cc.registChannel(CHANNEL);// 注册应用的channel
Thread helloAppModule = new Thread(new HelloAppModule(),"helloworld");
helloAppModule.setDaemon(true);
helloAppModule.start();
}
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
}
一定要继承 ServletContextListener,这个我弄了一上午,最后才发现时没继承。
HelloAppModule.java
package org.comet4j.demo.helloworld;
import org.comet4j.core.CometContext;
import org.comet4j.core.CometEngine;
public class HelloAppModule implements Runnable{
private static final String CHANNEL = "hello";
public void run() {
while (true) {
CometEngine engine = CometContext.getInstance().getEngine();
engine.sendToAll(CHANNEL , "我来了!"); //传输数据
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<description>Comet4J容器侦听</description>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
</listener>
<servlet>
<description>Comet连接[默认:org.comet4j.core.CometServlet]</description>
<display-name>CometServlet</display-name>
<servlet-name>CometServlet</servlet-name>
<servlet-class>org.comet4j.core.CometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CometServlet</servlet-name>
<url-pattern>/conn</url-pattern>
</servlet-mapping>
<listener>
<description>HelloWorld</description>
<listener-class>org.comet4j.demo.helloworld.HelloWorld</listener-class>
</listener>
</web-app>
相关推荐
在实际应用中,使用Comet4j可以显著提升用户体验,因为它避免了传统的AJAX轮询带来的频繁请求和高延迟问题。同时,Comet4j也支持大规模并发,可以处理成千上万的并发连接,这对于构建高并发、实时性的互联网应用非常...
Comet4j通过长轮询、HTTP流或WebSocket等方式克服了HTTP协议的限制,实现了低延迟的数据传输。 在这个"comet4j实例"中,我们将会探讨如何使用Comet4j来创建一个可运行的示例应用。这个压缩包`comet4jDemo`可能包含...
这个JavaScript文件提供了API,使得前端开发者能够轻松地与Comet4J服务器端接口进行通信,实现长轮询、HTTP流或隐藏IFrame等Comet技术。这些技术可以帮助建立持久的连接,使得服务器可以及时地向浏览器推送更新的...
标题中的"comet4j-tomcat6.jar"和"comet4j-tomcat7.jar"是针对Tomcat 6和7版本的特定兼容库。这两个JAR文件包含了Comet4j的核心组件,使得开发者能够在这些版本的Tomcat上部署和运行支持Comet的Web应用程序。它们...
Comet4J是一个针对Java平台的服务器推送框架,它的核心理念是利用Ajax(XMLHttpRequest)技术来实现服务器向客户端的实时数据推送。在传统的HTTP协议中,服务器与客户端的通信通常依赖于客户端发起请求,而服务器...
2. **WebSocket**:虽然comet4j主要关注的是长轮询,但随着WebSocket协议的普及,一些现代的Comet实现可能会结合WebSocket以提供更好的性能和更低的延迟。 3. **事件驱动编程**:在服务端和客户端都需要进行事件驱动...
1. **长轮询(Long Polling)**:Comet4j可能实现了长轮询技术,这是最早的Comet实现方式之一。当客户端发送请求后,服务器并不立即响应,而是保持连接打开状态,直到有新的数据可发送,或者超时才返回,从而实现数据...
Comet4j是一个Java实现的长轮询技术框架,它主要用来解决Web应用中的实时通信问题。在传统的HTTP协议中,服务器向客户端推送数据时,需要客户端不断发起请求,服务器才能响应,这种方式效率低且浪费资源。而Comet4j...
Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式 文件包含comet4j-tomcat6.jar , comet4j-tomcat7.jar , comet4j.js...
在描述中,我们看到"基于Comet4j的简易聊天",这表明项目的核心是利用Comet4j的长轮询或HTTP流特性来实现实时通信。Comet4j通过保持一个持久的HTTP连接开放,使得服务器可以在有新消息时立即推送到客户端,而不是...
Comet4j是一个开源的Java库,专门设计用于实现Comet技术,即长轮询(Long Polling)和HTTP流,以实现在Web应用中提供实时通信的能力。这个Demo包含了源代码和操作手册,帮助开发者快速理解和应用Comet4j。 在Web...
Comet4j是一个Java库,专门用于实现Comet技术,这是一种服务器推送技术,允许服务器向客户端实时推送数据,而不仅仅是响应客户端的请求。在Web应用中,这种技术常用于实现聊天室、股票更新、在线游戏等实时交互功能...
Comet4j是一种基于Java的服务器推送技术,它允许服务器主动向客户端发送数据,而无需客户端不断轮询请求。在Web应用中,这种技术能够显著提高实时性,尤其是在实时聊天、股票更新、在线游戏等场景中表现优异。该...
本资源包包含了实现Comet4j功能所需的关键组件,包括`comet4j.js`脚本文件和`comet4j-tomcat7.jar`服务器端库。 首先,让我们详细了解一下Comet4j。Comet技术是一种HTTP持久连接技术,它通过长时间保持HTTP连接来...
Comet4j提供了异步处理、长轮询、HTTP流等多种策略,以适应不同的实时推送需求。通过使用Comet4j,开发人员可以轻松地创建出能够实时更新数据的Web应用,例如在线聊天、股票报价或者游戏等需要即时反馈的场景。 ...
Comet4J是一个针对Java平台的服务器推送框架,专门用于实现AJAX(XMLHttpRequest)技术的长轮询和 comet 模式。这个框架的核心目的是在Web应用中实现实时通信,使得服务器能够主动向客户端推送数据,而无需客户端...
Comet4j采用了长轮询(Long Polling)、流(Streaming)和HTTP连接保持(HTTP Connection Keep-Alive)等多种策略,以适应不同的服务器和浏览器环境,保证数据的实时传输。长轮询是在客户端发送请求后,服务器并不...
Comet4j是一个基于Java开发的实时通信框架,主要用于实现服务器向客户端的长连接推送服务。在Web应用中,传统的HTTP协议是请求-响应模式,不利于实现即时消息推送。而Comet4j通过 comet 技术,使得服务器能够主动向...
Comet4j是一个Java库,专门用于实现Comet技术,这是一种服务器向客户端推送数据的Web应用程序设计模式。Comet技术打破了传统的HTTP请求-响应模型,允许服务器在客户端保持持久连接,从而实现实时数据更新。这在需要...