当前位置:网站首页 / Java / 正文

pushlet 实现web 实时消息推送

2014年07月18日 Java 2115 ℃ 评论

Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet或者插件的帮助。


缺点:服务的类在服务器启动时开始一直运行,对服务器的压力很大。



准备工作:

1. 下载pushlet  (pushlet-2.0.4.zip


http://pan.baidu.com/s/1gdGcz3H


2.   创建工程 PushletTest

a)    项目名称为 :  PushletTest



2.       添加依赖文件

a)         在下载文件的webapps 演示文件夹中找寻文件

b)        在 src 目录中添加  log4j.properties    pushlet.properties   sources.properties


c)         添加依赖jar包

在下载文件的  lib  目录下 copy pushlet.jar  pushletclient.jar  导入到/WEB-INF/lib

d)        配置 web.xml

<servlet>
       <servlet-name>pushlet</servlet-name>
                                 <servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
              <load-on-startup>1</load-on-startup>
        </servlet>
 
        <servlet-mapping>
           <servlet-name>pushlet</servlet-name>
           <url-pattern>/pushlet.srv</url-pattern>
</servlet-mapping>

3.    添加实例

a)      创建数据源

package com.source;
 
import java.io.Serializable;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.EventPullSource;
 
public class HelloWorldEventPullSource implements Serializable{
    private static final long serialVersionUID = 1L;
    static public class HelloWorldEvent extends EventPullSource{
       @Override
       protected long getSleepTime() {
           return 1000; //刷新时间
       }
       @Override
       protected Event pullEvent() {
           Event event =Event.createDataEvent("/source/event");//事件标识
           event.setField("msg", "hello,world");//封装参数
           return event;
       }
    }
}

b)      配置数据源

sources.properties  进行数据源配置<将sources.properties 中的source数据清空,添加下面的数据源>

source1=com.source.HelloWorldEventPullSource$HelloWorldEvent

c)    添加js文件

 在WebContent目录下面新建一个js文件夹,并添加ajax-pushlet-client.js文件进去(文中说到的所有文件,都在pushlet-2.0.4.zip里面可以找见

c)  d)页面调用

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>index.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/ajax-pushlet-client.js"></script>
<!—js 从演示项目的  lib 下copy -->
    <script type="text/javascript">
       PL._init();
       PL.joinListen('/source/event');  //事件标识 在数据源中引用
       function onData(event) {
           alert(event.get("msg"));
       }
    </script>
  </head>
  <body>
  </body>
</html>

3

3.

3.文件目录结构如下:


4.    4 . 测试 http://localhost:8080/PushletTest/Index.html
















查看更多关于pushlet实时消息推送,的文章

请输入你的在线分享代码

猜你喜欢

额!本文竟然没有沙发!你愿意来坐坐吗?
君仔公众号
最热文章
    友情链接
    君仔公众号
    最热文章
      友情链接