`

服务器推技术之Pushlets的使用 二

阅读更多
Pushlet 是一个开源的 Comet 框架,在设计上有很多值得借鉴的地方,对于开发轻量级的 Comet 应用很有参考价值。 Pushlets的下载地址是 http://www.pushlets.com Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 Pushlet支持ajax,flash,applet等多种形式客户端,其中以ajax的客户端集成相对简单。这里就不在介绍。详细参看实例里面stock部分。 这里只是简单介绍如何创建基于FLASH客户端的使用。 首先创造服务器端程序: 并将pushlet.jar引入到工程,将 pushlet.properties sources.properties 拷贝到/WEB-INFO/classes目录下,并在sources.properties中填写如下语句 source8=CometDemo.cn.CometDemoPull$CometRatePull 然后创建java文件如下: -----------------------------------------------CometDemoPull.java package CometDemo.cn; import nl.justobjects.pushlet.core.Event; import nl.justobjects.pushlet.core.EventPullSource; import nl.justobjects.pushlet.util.Rand; public class CometDemoPull { static public class CometRatePull extends EventPullSource{ @Override protected long getSleepTime() { return 3000L; //这里是设置了一个轮回的时间间隔 } @Override protected Event pullEvent() { Event event = Event.createDataEvent("/CometDemo/TestRate"); //这里创建一个服务。 event.setField("JPY",Rand.randomInt(1, 100)); //以下是发送到客户端的数据 event.setField("GBR",Rand.randomInt(1, 100)); event.setField("RMB",Rand.randomInt(1, 100)); event.setField("USD",Rand.randomInt(1, 100)); return event; } } } ---------------------------------------------------------------------------------- 在web.xml中添加如下servlet影射: <!-- Define the pushlet servlet --> <servlet><servlet-name>pushlet</servlet-name><servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!-- Define the Servlet Mappings. --><!-- The pushlet --><servlet-mapping><servlet-name>pushlet</servlet-name><url-pattern>/pushlet.srv</url-pattern></servlet-mapping> =================================以上服务器端完成。 然后是flash客户端 这里我们原来pushlet的flash例子基础之上进行修改。原来的例子没有发送数据只是保持和服务器连接。这里将他修改为接受自定义数据的flash客户端 代码修改如下: ------------------------------------------------------------flash function display(text) { panel = panel+text+newline; panel.scroll = panel.maxscroll; } function displayEvent(xmlObject) { attributes = xmlObject.attributes; for (var j in attributes) { text = text + " " + j + "=" + attributes[j]; } display(text); } var eventXML; var intervalID; var sessionID; var host = "http://localhost:8080/CometDemo"; var path = "/pushlet.srv?p_event=join-listen&p_subject=/CometDemo/TestRate&p_format=xml-strict&p_mode=pull"; var refreshPath="/pushlet.srv?p_event=refresh&p_id=" loadXML(host, path); function loadXML(host, path) { url = host + path; eventXML = new XML(); eventXML.ignoreWhite = true; eventXML.onLoad = myLoad; eventXML.load(url); clearInterval(intervalID); } function myLoad(ok) { if (ok == true) { handleEvents(eventXML); } else { display("Error receiving event"); } } function handleEvents(xmlObject) { var children = xmlObject.firstChild.childNodes; for (i=0; i
分享到:
评论

相关推荐

    asp.net 服务器推技术源码

    ASP.NET服务器推技术是一种允许服务器主动向客户端发送数据的技术,而不是...在实际工作中,结合现代的ASP.NET框架如ASP.NET Core,可以使用SignalR这样的库,它简化了服务器推的实现,让开发者能更专注于业务逻辑。

    服务器推技术,最新聊天室技术

    服务器推技术是现代互联网应用程序,特别是实时通信应用如聊天室中的关键组成部分。它与传统的HTTP请求-响应模型不同,服务器推技术允许服务器主动地将数据发送到客户端,而无需客户端发起新的请求。这一机制极大地...

    DWR服务器推技术Demo

    DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

    服服务器推送技术服服务器推送技术.doc

    服务器推送技术是Web开发中的一种重要机制,旨在克服传统HTTP协议的局限性,尤其是解决服务器向客户端实时推送信息的问题。...随着技术的进步,未来的服务器推送技术将会更加高效、可靠且易于使用。

    pushlet服务器推技术例子

    【Pushlet服务器推技术】是一种实时通信技术,主要用于构建能够实时推送信息的Web应用程序,比如聊天、股票更新、在线游戏等场景。Pushlet是基于Java的开源项目,它利用了HTTP的长连接特性,实现了服务器主动向...

    DWR服务器推送技术(实时)

    DWR使用一种称为Reverse Ajax或Comet的技术来实现服务器推送。它创建了一个持久化的HTTP连接,使得服务器可以在准备好新数据时立即发送,而不需要等待客户端的请求。DWR提供了一种简单的方式来注册JavaScript函数,...

    服务器推送技术

    而服务器推送技术允许服务器在客户端未发起请求的情况下,主动将数据发送到客户端,从而实现实时更新和即时通讯。 在Web开发中,服务器推送主要应用于需要实时更新信息的场景,如股票交易、在线聊天、游戏状态更新...

    dwr实现的服务器推demo

    在这个"**dwr实现的服务器推demo**"中,我们看到一个实例,展示了如何利用DWR的技术来实现实时的、无需刷新的服务器推送功能。 服务器推是一种技术,它允许服务器主动地将数据发送到客户端,而不需要客户端(通常是...

    dwr实现服务器推技术,兼容低版本IE

    DWR通过使用ActiveXObject和IFrame等技术,能够在这些旧版本的IE上实现Ajax和服务器推送功能。同时,开发者需要注意IE的内存管理和兼容性问题,确保应用程序的稳定性和性能。 4. **DEMO项目结构** - `.classpath`...

    基于 Pushlets 的消息推送设计.docx

    为了简化使用和未来兼容其他推送技术(如WebSocket),通常会对Pushlets进行接口封装,定义一个Channel服务。这个服务允许服务器端通过JS客户端建立长连接,实现实时消息推送。JS客户端API包括init()、open()、...

    Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

    5. **发送推送请求**:使用HTTP/2客户端的API,向APNs服务器发送POST请求。请求头需要包含`apns-id`(用于追踪推送结果)和`apns-priority`(表示推送的优先级,通常设为10表示立即推送)字段。 6. **处理响应**:...

    服务器推送信息给安卓设备端

    这一过程涉及到的技术通常被称为“服务器推送通知”(Server-Side Push Notifications)。本文将深入探讨这个主题,包括其工作原理、常用的推送服务以及实现方法。 首先,理解服务器推送的基本概念是至关重要的。...

    服务器推送技术之comet4j资源包

    服务器推送技术是现代Web开发中一个重要的概念,它允许服务器主动向客户端发送数据,而不仅仅是响应客户端的请求。Comet4j就是一种基于Java实现的服务器推送技术框架,旨在简化实时Web应用的开发过程。本资源包包含...

    DWR服务器推送技术实现WebQQ

    **DWR(Direct Web Remoting)服务器推送技术详解与WebQQ实现** DWR,全称为Direct Web Remoting,是一种在JavaScript和Java之间进行远程方法调用(Remote Method Invocation,RMI)的技术,允许Web应用程序实现...

    开发技术-硬件-服务器推送技术在光缆实时监控系统中的研究应用.zip

    2. **事件驱动架构**:服务器推送系统通常采用事件驱动设计,当服务器接收到新的监控数据时,会触发推送事件,将数据推送到客户端。 3. **负载均衡与扩展性**:随着光缆网络的扩大,服务器推送系统需要处理大量并发...

    基于服务器推送技术的实时电话监控模型

    【基于服务器推送技术的实时电话监控模型】是一种创新的IT解决方案,它利用现代网络技术和编程语言,实现了对电话通信的实时监控与管理。这个模型主要依赖于B/S(Browser/Server,浏览器/服务器)架构,结合了服务器...

    服务器推送功能详细设计.docx

    服务器推送技术,也称为Server Pushing,是一种网络通信模式,允许服务器主动向客户端...总的来说,服务器推送技术是现代Web应用中的关键技术之一,它极大地丰富了Web交互的可能性,为用户提供更加实时、动态的体验。

    RTMP推流服务器.rar

    RTMP(Real-Time Messaging Protocol)推流服务器是一种用于实时音视频传输的技术,广泛应用于直播平台。这个"RTMP推流服务器.rar"压缩包文件包含了实现RTMP推流功能的源码,意味着我们可以深入理解并自定义RTMP...

    ajax+"服务器推送"简单web聊天

    2. 使用Ajax实现客户端的异步通信,当用户发送消息时,将消息通过Ajax发送到服务器。 3. 在服务器端,JSP接收到消息后进行处理,可以将消息保存到数据库或队列中,并触发服务器推送。 4. 实现服务器推送,可以通过...

    使用live555实现实时流的推流服务器

    在本文中,我们将深入探讨如何使用live555库实现实时流的推流服务器。Live555是一个开源的C++库,专门用于实时多媒体流传输,支持RTSP(Real-Time Streaming Protocol)协议,广泛应用于视频直播、VoIP和其他需要...

Global site tag (gtag.js) - Google Analytics