comet4j的使用

1导包   comet4j-tomcat7.jar    ,我用apache-tomcat-8.0.32也能用

tomcat要修改的内容 server.xml,  

如果要配置host, 配完要额外添加一个name="localhost" 的host标签,不然tomcat会报

<pre name="code" class="html"><pre name="code" class="html">2013-6-2 11:29:32 org.apache.coyote.http11.AbstractHttp11Processor process
严重: Error processing request
java.lang.NullPointerException
        at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)
        at org.apache.tomcat.util.http.mapper.Mapper.map(Mapper.java:673)
        at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAd
apter.java:646)





独立的host    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"></Host>

  <Connector connectionTimeout="20000" 
	port="8080" 
	protocol="org.apache.coyote.http11.Http11NioProtocol" 
        maxThreads="512"
        minSpareThreads="16"
        maxSpareThreads="32"
        enableLookups="false"
        acceptCount="512"
	redirectPort="8443"
/>


2.web.xml 配置

<!--   comet4j服务器推送 不兼容 -->
  <listener>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
  </listener>
  <servlet>
<display-name>CometServlet</display-name>
<servlet-name>CometServlet</servlet-name>
<servlet-class>org.comet4j.core.CometServlet</servlet-class>
  </servlet>
<!--   js与后台建立连接的servlet,路径要写对,相对页面注册配置的路径 这里使用根目录文件里配有的/conn -->
  <servlet-mapping>
<servlet-name>CometServlet</servlet-name>
<url-pattern>/conn</url-pattern>
  </servlet-mapping>
<!--   初始化comet4j 自己写的实现类看下面  -->
  <listener>
    <listener-class>com.MyComet4jListener</listener-class>
  </listener>


3.实现类

package com;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * 初始化comet
 */
public class MyComet4jListener implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		CometContext cc = CometContext.getInstance();
                cc.registChannel("toUserWeb");//注册,js中的名字一致
	}

}


4.导js     comet4j.js

接着在页面注册 这里在根目录配置和上面的/conn的位置匹配

$(function(){
    JS.Engine.start('conn');
    JS.Engine.on({//后台推送频道
    	toUserWeb : function(data){
    		
    		//js操作
    		
        }
    });
}


5.类方法主动调用  toUserWeb


CometEngine engine = CometContext.getInstance().getEngine();

map=new HashMap();
engine.sendToAll("toUserWeb", map);//传送到网页,传参 页面会作响应




Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。 功能特性 推送消息广播。 推送定向消息。 提供连接上线前、上线、下线前、下线、发送消息等多种可处理事件。 消息缓存机制,确保长轮询工作模式下不丢失消息。 客户端正常下线,服务端可立即感知。 客户端异常停止工作,服务端可定时检查并感知。 以注册通道应用的方式,让开发者对框架功能进行扩展,实现自己的应用。 框架特性 独立小巧,不依赖于第三方包。 与应用紧密集成,无需独立应用或服务器。 与Session无关的连接机制,为开发人员提供最大程度的功能可控性。 面向事件编程,客户端与服务器端均为事件驱动开发模式,提供了良好的可扩展性机制。 各项性能参数均可配置。 支持多种主流浏览器,并支持Air应用环境。 服务器支持情况 Tomcat6、Tomcat7 浏览器支持情况 支持XMLHTTPRequest对象的浏览器均可支持长轮询工作模式,但不一定能够支持长连接。 | 浏览器/平台 | 版本 | 长轮询 | 长连接 | |:-----------|:-------|:--------|:--------| | Internet Explorer | 6,7,8,9 | √ | X | | FireFox | 3.0+(更底版本未知) | √ | √ | | Chrome | 7.0+(更底版本未知) | √ | √ | | Safari | 5+(更底版本未知) | √ | √ | | Opera | 11.10+(更底版本未知) | √ | X | | Air | 1.5+(更底版本未知) | √ | √ | | IOS(Iphone/Ipad)| 3.1+(更底版本未知) | √ | √ | | Android | 未测试 | 未知 | 未知 | | BlackBerry | 未测试 | 未知 | 未知 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值