您的位置:首页 > 编程语言 > Java开发

comet4j笔记

2017-08-24 16:55 218 查看

1. 资源

comet4j-tomcat7.jar
comet4j.js


2. 资源添加

普通项目直接加入jar包至lib,addtobuildpath即可
maven项目,需先将jar包加入至本地仓库,然后在pom.xml中引入


js直接引入页面

maven手动安装jar包至本地仓库


mvn install:install-file -Dfile=jar包的位置 -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dpackaging=jar

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>


对应该配置项的命令即为:


mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar

Maven 手动添加 JAR 包到本地仓库

3. 配置

3.1 web.xml

<!-- comet4j -->
<listener>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
</listener>
<listener>
<description>comet</description>
<listener-class>com.xxx.xxx.listener.Comet4jListener(自己添加的类)</listener-class>
</listener>
<servlet>
<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>


3.2 监听类(web.xml中配置的Listener)

容器启动时注册Channel


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.comet4j.core.CometContext;
import com.wttech.szyy.utils.StringUtil;

public class Comet4jListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
//CometContext : Comet4J上下文,负责初始化配置、引擎对象、连接器对象、消息缓存等。
CometContext cc = CometContext.getInstance();
//注册频道
cc.registChannel("频道号");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}


3.3 页面配置

引入comet4j.js


// 建立连接,conn 即web.xml中 CometServlet的<url-pattern>
JS.Engine.start('conn');

JS.Engine.on({
start : function(cId, channelList, engine){
console.log('连接已建立,连接ID为:' + cId);
},
stop : function(cause, cId, url, engine){
console.log('连接已断开,连接ID为:' + cId + ',断开原因:' + cause + ',断开的连接地址:'+ url);
},
"listener中注册的频道号" : function(msg) {
alert("推送消息:" + msg);
}
});


3.4 消息推送

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

方式一:engine.sendToAll("频道号", "数据");
发送给所有连接到该频道的用户(群发)

方式二:engine.sendTo("频道号", engine.getConnection("页面连接成功后的cId"), "数据");
发送给某一个用户(定点发送)


4.集成到业务系统进行推送的想法

![流程图](https://img-blog.csdn.net/20170824165743099?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3poZTE5OTE5MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  comet java-推送 pushlet