pushlet 实现web 实时消息推送

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

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值