`

服务器推技术之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协议的局限性,尤其是解决服务器向客户端实时推送信息的问题。...随着技术的进步,未来的服务器推送技术将会更加高效、可靠且易于使用。

    dwr推技术实现服务器推送数据

    DWR的独特之处在于它的“反转Ajax”(Reverse Ajax)概念,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这在股票实时显示等需要即时更新信息的应用场景中非常有用。 在"股票实时显示"的应用...

    pushlet服务器推技术例子

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

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

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

    dwr服务器推技术实例

    使用DWR服务器推技术的步骤大致包括: 1. **配置DWR**:在Web应用的`web.xml`中配置DWR的Servlet,设置允许的类和方法。 2. **创建Java后台服务**:编写服务端代码,处理业务逻辑,并准备要推送的数据。 3. **创建...

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

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

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

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

    Comet:基于 HTTP 长连接的“服务器推”技术 (实例)

    Comet 是一种用于 Web 应用程序的异步通信技术,它通过 HTTP 长连接实现服务器向客户端推送数据,而不是传统的由客户端发起请求获取数据。这种技术解决了传统Web应用中实时性不足的问题,使得Web应用能够实现类似...

    基于comet服务器推技术思路的Pushlet技术实现1

    本文主要讨论了一种基于Comet服务器推技术的Pushlet实现,这种技术允许服务器向客户端实时推送数据,而无需客户端持续发起请求。 Comet技术是一种优化的Web通信模式,其核心思想是利用持久化HTTP连接来实现实时数据...

    服务器推送技术资料 server push

    该技术源于Ajax技术的广泛应用,它改变了Web应用仅能通过用户触发请求获取数据的方式,实现了服务器端数据的实时推送。 在传统的Web访问机制中,浏览器作为客户端(Browser)只能发起请求,服务器(Server)被动...

    多种方式模拟服务器推送客户端

    在Web开发中,服务器向客户端实时推送数据是常见...在名为"serverPush"的压缩包文件中,可能包含了实现上述各种服务器推送方式的JAVA代码示例,开发者可以通过阅读和学习这些代码,进一步理解并掌握服务器推送的技术。

    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交互的可能性,为用户提供更加实时、动态的体验。

Global site tag (gtag.js) - Google Analytics