pushlet_向所有在线用户发送消息的单线程应用
第一步:
pushlet是"服务器推"技术的一个开源框架,利用它可以实现Http长连接这项需求.
1.下载pushlet最新版,pushlet下载地址为:
http://sourceforge.net/projects/pushlets/files/pushlets/2.0.4/pushlet-2.0.4.zip/download
2.将下载后的zip包解压缩,看到如下目录结构:
3.新建立web项目,将lib目录中的pushlet.jar文件添加到项目的lib目录中
4.将webapps\pushlet\WEB-INF\classes目录中的pushlet.properties和sources.properties文件添加到项目的src目录中
5.将webapps\pushlet\lib目录中的ajax-pushlet-client.js文件添加到项目的根路径中
6.添加完成后,目录结构如下图所示:
第二步:
1.修改web.xml文件,添加如下片段:
<servlet>
<servlet-name>pushlet</servlet-name>
<servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>pushlet</servlet-name>
<url-pattern>/pushlet.srv</url-pattern>
</servlet-mapping>
2.定义推送源HelloWorldPushlet,代码如下片段:
package com;
import java.io.Serializable;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.EventPullSource;
public class HelloWorldPushlet implements Serializable {
public static class PullSource extends EventPullSource {
@Override
protected long getSleepTime() {
return 5000;
}
@Override
protected Event pullEvent() {
Event event = Event.createDataEvent("helloworld");
event.setField("msg", "Hello World!!!");
return event;
}
}
}
3.修改sources.properties文件,为下图所示:
4.新建jsp页面,添加js文件,注册事件,回调函数,如下图所示:
5.在浏览器中浏览http://localhost:8080/pushlet_pushall/,可以看到如下图所示的结果,表示成功(Firebug看到连续的请求):