您的位置:首页 > 其它

comet4j的使用

2016-04-12 19:53 330 查看
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