comet4j-java服务器推送实例
2015-12-24 16:00
225 查看
使用comet需要用到comet4j-tomcat7.jar(用于tomcat7)、comet4j.js。
注:spring及springMVC的相关配置略,只配置comet所需要的配置信息。
1.修改tomcat7的server.xml文件,nio
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="80" redirectPort="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"/>
2.新建服务端的类TestComet , 实现 ServletContextListener 接口
public class TestAction implements ServletContextListener {
public static final String CHANNEL = "test";
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent arg0) {
CometContext cc = CometContext.getInstance();
cc.registChannel(CHANNEL);
}
}
3.在web.xml添加下面代码
<servlet>
<servlet-name>CometServlet</servlet-name>
<servlet-class>org.comet4j.core.CometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CometServlet</servlet-name>
<!-- 客户端的入口 -->
<url-pattern>/comet</url-pattern>
</servlet-mapping>
<listener>
<description>Comet4J容器侦听</description>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
</listener>
<listener>
<description>TestAction类的路径</description>
<listener-class>com.mvc.action.TestAction</listener-class>
</listener>
4.客户端代码
<script type="text/javascript" src="<%=path%>/style/js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="<%=path%>/style/js/comet4j.js"></script>
<div id="div"></div>
<script>
var o = $('#div');
JS.Engine.on({
test : function(data){//侦听一个channel,test就是TestAction.CHANNEL的值。
o.append('<p>'+data+'</p>');
}
});
JS.Engine.start('http://localhost/dtwb/comet'); //客户端访问的url就是web.xml配置的CometServlet的访问路径。
</script>
5.测试类
@RequestMapping(value="/chat")
@Controller
public class ChatAction {
@RequestMapping(value = "/test")
@ResponseBody
public Object test(String name) {
CometEngine engine = CometContext.getInstance().getEngine();
engine.sendToAll(TestAction.CHANNEL, name);
return "ok";
}
}
6.测试
首先打开test.jsp页面,然后运行测试接口:http://localhost/项目名/chat/test?name=测试数据
每执行一次测试接口,test.jsp页面就会自动多一条测试数据(实时无刷新)。
注:spring及springMVC的相关配置略,只配置comet所需要的配置信息。
1.修改tomcat7的server.xml文件,nio
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="80" redirectPort="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"/>
2.新建服务端的类TestComet , 实现 ServletContextListener 接口
public class TestAction implements ServletContextListener {
public static final String CHANNEL = "test";
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent arg0) {
CometContext cc = CometContext.getInstance();
cc.registChannel(CHANNEL);
}
}
3.在web.xml添加下面代码
<servlet>
<servlet-name>CometServlet</servlet-name>
<servlet-class>org.comet4j.core.CometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CometServlet</servlet-name>
<!-- 客户端的入口 -->
<url-pattern>/comet</url-pattern>
</servlet-mapping>
<listener>
<description>Comet4J容器侦听</description>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
</listener>
<listener>
<description>TestAction类的路径</description>
<listener-class>com.mvc.action.TestAction</listener-class>
</listener>
4.客户端代码
<script type="text/javascript" src="<%=path%>/style/js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="<%=path%>/style/js/comet4j.js"></script>
<div id="div"></div>
<script>
var o = $('#div');
JS.Engine.on({
test : function(data){//侦听一个channel,test就是TestAction.CHANNEL的值。
o.append('<p>'+data+'</p>');
}
});
JS.Engine.start('http://localhost/dtwb/comet'); //客户端访问的url就是web.xml配置的CometServlet的访问路径。
</script>
5.测试类
@RequestMapping(value="/chat")
@Controller
public class ChatAction {
@RequestMapping(value = "/test")
@ResponseBody
public Object test(String name) {
CometEngine engine = CometContext.getInstance().getEngine();
engine.sendToAll(TestAction.CHANNEL, name);
return "ok";
}
}
6.测试
首先打开test.jsp页面,然后运行测试接口:http://localhost/项目名/chat/test?name=测试数据
每执行一次测试接口,test.jsp页面就会自动多一条测试数据(实时无刷新)。
相关文章推荐
- Java工程师成神之路
- <Java> File文件操作
- Java多线程和并发性知识点总结
- java中对象和json格式相互序列化和反序列化的函数
- Java工程师学习列表
- java.net.InetAddress类的使用
- JAVA虚拟机关闭钩子(Shutdown Hook)
- JAVA虚拟机关闭钩子(Shutdown Hook)
- JAVA基础集合框架(一)
- Spring学习(七)——增强类
- 常用的eclipse快捷键-也适合sts
- 基本Action类以及配置通用Action
- java基础学习(eclipse)
- eclipse git版本
- 基于Spring框架的Shiro配置
- 配置Spring
- 配置Spring
- Java transient关键字使用小记
- mysql mybatis springmvc 分页
- Struts2的学习(5)-使用PrepareInterceptor和Preparable接口