PushLet_B是在前面PushLet_A代码的基础上改写的,其作用是将推送动作抽离出来,因此在实际使用过程中,需要推送的信息的产生具有不确定性,有可能3分钟设备会出一个问题,也有可能一天都不出问题。
在写该测试示例之前,本人范了一个严重且低级的错误,就是直接通过一个main函数调用pullEvent()方法来进行测试,刚开始的时候以为直接调用pullEvent()方法即可,但却一直报Dispatcher.getInstance()为空,后来通过分析Puslet.java 源码发现,推送的实现必须给予Web容器的支持,因为仅仅通过main()函数直接调用pullEvent()方法仅仅是单纯的方法调用而已,没有通过Web容器的参与,无法获取Session等信息,所以不能正确获取对象。
因此该示例实际为一标准Servlet,其中pullEvent()方法中比较关键的代码为:
若不进行转码,在进行首次推送时会将页面与服务器的链接打断。
Event event = Event.createDataEvent(subject);//获取监听事件源(对象)
event.setField("hw",new String(str.getBytes("UTF-8"), "ISO-8859-1"));//转码
Dispatcher.getInstance().multicast(event);//实现推送动作
编译、部署该示例,运行index.jsp页面后,另开一页面“手动”请求PushServlet即可出现和PushLet_A示例同样的运行效果(为了便于演示,该示例内部依然写了一个死循环)。
个人说明:
1 、为表示对相关资料贡献者的尊重,转载、参考内容均有特殊说明并附出处【 URL 】
2 、由于知识面、技术能力有限,内容主要面向应用、没有过多关于原理性的介绍。
另外文中阐述若有不(够)正确之处,望广大网友“友好”指正。
分享到:
相关推荐
【服务器推送技术——PushLet应用详解<一>】 在当今的互联网应用中,实时性成为了不可或缺的需求,无论是即时通讯、在线游戏还是股票交易,都需要服务器能够主动向客户端推送信息,而不是传统的请求-响应模式。这...
在IBM于2008年发布的技术报告中,详细介绍了服务器推送技术——即所谓的Pushlet。这项技术为Web应用程序的发展带来了革命性的变化,尤其是在异步通信方面。本文将根据报告内容深入探讨Pushlet的相关知识点,包括其...
在最新的版本 2.0.4 中,该框架引入了一个重要的新特性——支持指定用户推送,这使得消息传输更加精细化,提升了用户体验,同时也优化了服务器资源的利用。 一、Pushlet 框架基础 Pushlet 框架基于 publish-...
3. **数据解析**:接收到服务器推送的数据后,客户端需要解析这些数据,通常是JSON格式,然后进行渲染或处理。 **Pushlet的应用场景** 1. **实时通知**:例如,即时消息系统或邮件通知,服务器可以直接将新消息推送...
Pushlet是一个基于Java的轻量级推送技术框架,常用于构建实时Web应用程序,尤其是即时通讯系统。 Pushlet的核心思想是服务器向客户端推送数据,而不是传统的客户端轮询方式。这种设计模式提高了效率,减少了网络...