`
nowwondering
  • 浏览: 19975 次
  • 来自: 深圳
社区版块
存档分类
最新评论

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看到连续的请求):

  • 大小: 43.9 KB
  • 大小: 8.6 KB
  • 大小: 2.7 KB
  • 大小: 3.5 KB
  • 大小: 26.5 KB
1
6
分享到:
评论
6 楼 Reset 2012-10-29  
还是用Websocket吧...
5 楼 cuisuqiang 2012-10-08  
Reset 写道
Event event = Event.createDataEvent("helloworld");
event.setField("msg", "Hello World!!!");
return event;


直接这样就OK了,没必要 用定时休眠搞吧 

因为是用轮询实现的推送!http://cuisuqiang.iteye.com/
4 楼 Reset 2012-08-24  
亲啊 js-pushlet-client.js 才是长连接 那个ajax的就是轮询 坑爹了
3 楼 Reset 2012-08-24  
坑爹啊 这是轮询...
2 楼 Reset 2012-08-24  
必须要实现 EventPullSource  ?
1 楼 Reset 2012-08-24  
Event event = Event.createDataEvent("helloworld");
event.setField("msg", "Hello World!!!");
return event;


直接这样就OK了,没必要 用定时休眠搞吧 

相关推荐

    pushlet_向在线的特定用户发送消息的单线程应用

    在“pushlet_向在线的特定用户发送消息的单线程应用”中,我们关注的是如何使用Pushlet来实现对特定在线用户的即时消息推送,并且整个应用是基于单线程设计的。 首先,我们需要理解单线程的含义。在多用户环境中,...

    pushlet_2.0.3_源码分析_服务器端__

    心跳机制用于在阻塞超时后向客户端发送消息,保持会话活跃。 **协议服务** Pushlet 提供以下协议服务: 1. **join** - 开始会话 2. **leave** - 结束会话 3. **subscribe** - 订阅主题 4. **unsubscribe** - 取消...

    基于pushlet_chat技术的群聊实现 解决了中文乱码问题

    Pushlet_Chat是一种实时通信技术,常用于构建即时消息系统(IM),尤其在B/S架构中广泛应用。它基于HTTP长连接,通过服务器向客户端推送数据,实现了低延迟、高效能的信息传输。在这个项目中,我们看到的是一个针对...

    pushlet定时向页面发送消息demo

    这个"pushlet定时向页面发送消息demo"是一个实例,展示了如何使用Pushlet库来实现定时向用户页面发送更新信息。 首先,理解Pushlet的基本工作原理。Pushlet采用了一个叫做Comet的技术,Comet是长连接的一种实现方式...

    pushlet定时向前台推送消息

    在"pushlet定时向前台推送消息"的场景中,Pushlet被用来创建一个能够定时发送消息到前端的应用。这个应用可能包含以下几个关键组成部分: 1. **服务器端组件**:Pushlet服务器端通常会有一个或多个服务,它们负责...

    Pushlet点对点发送消息

    通过上述知识点的学习和实践,你可以掌握如何使用Pushlet实现高效的点对点消息传递,这对于开发实时协作工具、在线游戏、聊天应用或者任何需要实时数据更新的系统都非常有用。在提供的"mypushlet"文件中,可能包含了...

    pushlet实现简单的用户聊天

    Pushlet Client则运行在用户的浏览器或应用程序中,用于建立与服务器的持久连接,并接收来自服务器的消息。 首先,要理解Pushlet的工作原理。当客户端(例如,一个Web浏览器)与Pushlet Server建立连接后,服务器会...

    pushlet简单配置应用

    Pushlet库的核心功能是实现实时的服务器向客户端推送数据,而无需客户端频繁发起请求,这大大提高了网络应用的效率和用户体验。以下是对Pushlet配置应用的详细解释: 1. **引入Pushlet.jar**:首先,你需要在你的...

    pushlet实现服务器端向客户端推送消息总结

    - **API 推送**:通过编程方式调用 Pushlet 提供的 API,主动向特定客户端或所有客户端发送消息。这种方式更加灵活,可以根据业务需求随时触发推送。 2. **准备工作**: - **JSP 页面设置**:在 JSP 页面中添加 `...

    服务器推送——PushLet的应用<一>

    例如,在一个在线协作工具中,当一个用户编辑文档时,其他所有在线的用户可以通过PushLet立即接收到这个变化,实现同步查看。 PushLet的源码结构清晰,易于理解和扩展。主要包含以下几个关键组件: 1. **Push...

    PUSHLET即时通讯工程实例

    Tomcat的webapps目录是放置Web应用的默认位置,将本实例的压缩包解压后,直接将整个项目文件夹放入webapps下,例如命名为`pushlet_example`。 **项目结构** 解压后的项目包含以下主要文件和目录: 1. **index.jsp*...

    使用Ext Pushlet 实现的点对点聊天功能

    Ext.PUSHLET_URL='piccUtil'; // 发送消息的地址 Ext.fcontent='fcontent'; // 显示窗口或有新消息时, 显示好友ID的区域 Ext.showonLine='showonLine'; // 好友列表显示区 Ext.jsq='jsq'; // 好友列表计数器 ...

    pushlet实例(java服务端推送消息)

    由服务端推送消息至客户端(或指定id的客户端),代码中没有用官网的jar文件,而是用的源码,做了一定的修改,实现了每个客户端都可以自定义id,然后服务端可以向指定id客户端推送消息。 不多说了,先部署启动工程 ...

    pushlet

    在实际应用中,Pushlet技术可以用于实时股票更新、聊天室、在线游戏、协作工具等多种场景。开发者可以通过解压提供的pushlet-2.0.3压缩包,获取源代码、文档和示例,以便更好地理解和集成Pushlet到自己的项目中。 ...

    使用Ext Pushlet 实现的点对点聊天功能最新

    Ext.PUSHLET_URL='piccUtil'; // 发送消息的地址 Ext.fcontent='fcontent'; // 显示窗口或有新消息时, 显示好友ID的区域 Ext.showonLine='showonLine'; // 好友列表显示区 Ext.jsq='jsq'; // 好友列表计数器 ...

    Pushlet服务向

    在Web应用中,Pushlet服务通常用于实现数据的即时更新,比如股票报价、聊天室消息、在线游戏状态更新等场景,极大地提高了用户体验。 Pushlet的核心概念是“订阅/发布”模型,即Subscriber(订阅者)和Publisher...

    pushlet 扩充,sessionid 采用userid

    总的来说,这个技术实现了一个基于用户ID的个性化推送系统,利用Pushlet技术,服务器可以主动向各个用户发送定制化的消息,而客户端(浏览器)则通过Ajax Pushlet Client库接收并处理这些推送内容。这样的设计在实时...

    pushlet的JAR包和文档

    6. **pushlet_文档.doc**:这可能是一个详细的Pushlet使用手册或开发指南,包含了Pushlet的安装、配置、API使用等方面的指导。 7. **pushlet_test**:这个文件可能是Pushlet的测试脚本或者测试案例,用于验证...

    Pushlet后台往jsp前台推送消息实例

    总的来说,Pushlet提供了一种简单的方式来实现在Web应用中从后台向前端推送消息,这对于实时聊天、股票更新、在线游戏等场景非常有用。通过理解Pushlet的工作原理和实践操作,开发者可以有效地提升Web应用的交互体验...

Global site tag (gtag.js) - Google Analytics