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)
相关文章推荐
- 页面间隔半秒钟更新时间 Asp.net使用Comet开发http长连接示例分享
- 详解Tomcat如何实现Comet
- Ajax和Comet技术总结
- 使用java基于pushlet和bootstrap实现的简单聊天室
- JavaScript数据推送Comet技术详解
- Tomcat做推送服务引出的对TCP协议的调优
- 基于dwr2.0的Push推送技术详细解析以及实例
- JavaScript数据推送Comet技术详解
- Comet HTTP服务器推送框架之icomet
- comet小见
- comet
- 100句话让你记住7000个英语单词,这就是传说中的英语秘笈么?!
- 50个句子记7000个单词
- Comet技术研究文档
- 用Mochiweb打造百万级Comet应用,第一部分
- 用Mochiweb打造百万级Comet应用,第三部分 (待续)
- 用Mochiweb打造百万级Comet应用,第三部分(续)
- 用Mochiweb打造百万级Comet应用,第三部分(续2)
- Comet (Server Push)
- Comet: Low Latency Data for the Browser