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

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页面就会自动多一条测试数据(实时无刷新)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: