1.简介
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。表面上是服务器推,实现是还是客户端拉。
2.实现
2.1.发布Event
2.1.1.Local本地
--Dispatcher API
Dispatcher.getInstance().multicast()/unicast()/broadcast().
package com.siyuan.study.pushlet.event; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import nl.justobjects.pushlet.core.Dispatcher; import nl.justobjects.pushlet.core.Event; public class SendEventServlet extends HttpServlet { private static final long serialVersionUID = 1341951769479495126L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Event event = Event.createDataEvent("/myEvent/test"); event.setField("mess", "it is " + System.currentTimeMillis()); Dispatcher.getInstance().broadcast(event); Dispatcher.getInstance().multicast(event); Dispatcher.getInstance().unicast(event, req.getParameter("sessionId")); } }
--EventSource
2.1.2.Remote远程
2.2.获取Event
--DHTML
--AJAX
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Pragma" content="no-cache" /> <script type="text/javascript" src="ajax-pushlet-client.js"></script> <script type="text/javascript"> PL._init(); PL.joinListen('/cuige/he'); function onData(event) { alert(event.get("mess")); // 离开 // PL.leave(); } </script> </head> <body> <center> <h1> my first pushlet! </h1> </center> </body> </html>
--XML
--J2ME
3.其余配置
web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <!-- $Id: web.xml,v 1.7 2005/02/21 17:21:49 justb Exp $ --> <web-app> <!-- Define the pushlet servlet --> <servlet> <servlet-name>pushlet</servlet-name> <servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class> <load-on-startup>3</load-on-startup> </servlet> <servlet> <servlet-name>sender</servlet-name> <servlet-class>com.siyuan.study.pushlet.event.SendEventServlet</servlet-class> </servlet> <!-- Define the Servlet Mappings. --> <!-- The pushlet --> <servlet-mapping> <servlet-name>pushlet</servlet-name> <url-pattern>/pushlet.srv</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>sender</servlet-name> <url-pattern>/send</url-pattern> </servlet-mapping> </web-app>
pushlet.properties
4.设计思路
客户端订阅事件时在SessionManager中注册一个Session,并且保存订阅信息Subscriber。Subscriber包含两个重要的属性,subscriptions主题,EventQueue用于存储Event,客户端请求Pushlet从EventQueue中获取Event。
5.参考资料
http://www.pushlets.com/
相关推荐
在当今的Web开发中,实时通信技术已经成为了一项不可或缺的技能,而Pushlet的Ajax-pushlet-client.js则是实现服务器“推”技术的重要工具。本文将深入剖析这个JavaScript库的核心原理,帮助开发者理解其内部机制。 ...
pushlet 所需夹包 和配置文件 ajax-pushlet-client.js pushlet-sessionid.jar sources.properties pushlet.properties
通过这个"Pushlet-UserUnicast"项目,你可以从实践中学习如何构建一个用户定向的推送系统,从而提升你的实时通信技术和Java编程技能。同时,这也是一个很好的机会去熟悉服务器端编程和现代Web应用的实时通信解决方案...
为了更好地理解和使用 Pushlet 2.0.4 的指定用户推送功能,你可以参考提供的"pushlet-2.0.4实例增加指定用户推送"压缩包文件。这个实例包含了源代码、配置文件和相关文档,可以帮助你快速搭建一个简单的示例应用,...
Java服务端推送技术在Web应用中常常用于实现实时数据传输,例如聊天系统、股票更新、在线游戏等场景。Pushlet是一个基于Java的轻量级推送框架,它允许服务器主动向客户端推送信息,而非传统的HTTP请求-响应模式,即...
服务器推送技术在现代Web开发中扮演着至关重要的角色,它使得服务器能够主动向客户端发送数据,而无需客户端持续不断地发起请求。Pushlet是基于Comet技术的一种实现,它为Java开发者提供了一种高效的服务器推送解决...
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。
Pushlet 2.0.4是一款基于JAVA的开源框架,专为实现推送技术(Push Technology)而设计,适用于J2ME和JAVA WEB环境。在当前互联网应用中,实时数据传输的需求日益增长,Pushlet框架的出现,为开发者提供了一种高效、...
总之,“pushlet定时向前台推送消息”是一个利用Pushlet技术实现的服务器主动推送系统,它通过定时任务产生或更新数据,并通过长连接或WebSocket将这些数据实时推送到前端客户端,从而提供更高效、实时的用户体验。...
在IT行业中,实时消息推送是一项重要的技术,尤其是在构建交互式Web应用、移动应用以及服务器到设备的通信场景中。Pushlet Java 消息实时推送是一个典型的技术实现,它允许服务端主动向客户端发送数据,无需客户端...
总的来说,Pushlet提供了一种简单的方式来实现在Web应用中从后台向前端推送消息,这对于实时聊天、股票更新、在线游戏等场景非常有用。通过理解Pushlet的工作原理和实践操作,开发者可以有效地提升Web应用的交互体验...
这通常涉及到调度器和后台服务的配合,以在特定时间间隔推送数据。 - **API 推送**:通过编程方式调用 Pushlet 提供的 API,主动向特定客户端或所有客户端发送消息。这种方式更加灵活,可以根据业务需求随时触发推...
【推送技术】 推送技术是Web开发中的一种高级机制,它允许服务器主动向...通过这个例子,开发者可以学习到如何构建和部署一个能够进行服务器端数据推送的Web应用,这对于需要实时交互的系统设计具有重要参考价值。
pushlet所需要用到的jar包、js和properties都打包在里面!
实现多个客户端连接到web服务器,由服务端推送消息至客户端(或指定id的客户端),代码中没有用官网的jar文件,而是用的源码,做了一定的修改,实现了每个客户端都可以自定义id,然后服务端可以向指定id客户端推送消息...
Pushlet系统的核心组件包括Pushlet Server(推送服务器)、Pushlet Client(推送客户端)以及Event Source(事件源)。Pushlet Server是服务端程序,它接收客户端的连接并保持这些连接打开,等待来自Event Source的...
总的来说,这个项目展示了如何利用Pushlet框架构建一个高效的实时聊天系统,对于理解服务器推送技术及其在Web应用中的应用具有很好的参考价值。同时,这也涉及到Web开发中的前后端交互、服务器端编程、网络通信协议...
Pushlet是一种轻量级的、基于服务器推送(Server-Sent Events, SSE)技术,用于实现实时数据传输,特别是在Web应用中实现消息即时通知。 在Web开发中,传统的HTTP协议是基于请求-响应模型的,即客户端发起请求,...
【基于Pushlet实现的JSP网站消息推送】 在Web开发中,实时消息推送技术是提升用户体验的关键要素之...通过理解Pushlet的工作机制和实施流程,开发者可以更好地理解和掌握Web推送技术,提升Web应用的实时性和用户体验。
Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet或者插件的帮助。它使server端可以周期性地更新client的web页面,这与传统的request...