wangyibing / comet4jweb Goto Github PK
View Code? Open in Web Editor NEWThis project forked from coderdream/comet4jweb
Comet4jWeb
This project forked from coderdream/comet4jweb
Comet4jWeb
http://code.google.com/p/comet4j/wiki/HelloWorld [email protected] | My favorites ▼ | Profile | Sign out Logo comet4j 立即为您的JavaWEB应用增添消息推送特性。Comet for Java Project Home Downloads Wiki Issues Source Search for ‹‹ 开发指南 HelloWorld 参数配置 文档资料 HelloWorld HelloWorld Featured Updated May 25, 2011 by [email protected] 准备工作 1.下载服务端jar文件 2.下载客户端js文件 3.修改服务器配置文件 客户端 服务端 配置 准备工作 1.下载服务端jar文件 Comet4J目前仅支持Tomcat6、7版本,根据您所使用的Tomcat版本下载【comet4j-tomcat6.jar】或【comet4j-tomcat7.jar】文件放置到WEB项目的WEB-INF\lib目录下。 2.下载客户端js文件 下载【comet4j.js】到您的项目中,比如:WebContent\js目录下。 3.修改服务器配置文件 因为Comet4J工作在NIO方式下,所以我们需要调整服务器连接器配置,更换为NOI连接器。 打开server.xml文件将找到原先的连接器配置: <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 替换为: <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/> 客户端 我们利用Comet4J开发一个每隔一秒向所有客户端推送服务器的剩余内存大小。 helloworld.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Comet4J Hello World</title> <script type="text/javascript" src="js/comet4j-0.0.2.js"></script> <script type="text/javascript"> function init(){ var kbDom = document.getElementById('kb'); JS.Engine.on({ hello : function(kb){//侦听一个channel kbDom.innerHTML = kb; } }); JS.Engine.start('conn'); } </script> </head> <body onload="init()"> 剩余内存:<span id="kb">...</span>KB </body> </html> 服务端 helloworld.java package org.comet4j.demo.helloworld; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.comet4j.core.CometContext; import org.comet4j.core.CometEngine; 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(), "Sender App Module"); helloAppModule.setDaemon(true); helloAppModule.start(); } class HelloAppModule implements Runnable { public void run() { while (true) { try { Thread.sleep(1000); } catch (Exception ex) { ex.printStackTrace(); } CometEngine engine = CometContext.getInstance().getEngine(); engine.sendToAll(CHANNEL, Runtime.getRuntime().freeMemory()/1024); } } } public void contextDestroyed(ServletContextEvent arg0) { } } 配置 web.xml <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> Terms - Privacy - Project Hosting Help Powered by Google Project Hosting
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.