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 、由于知识面、技术能力有限,内容主要面向应用、没有过多关于原理性的介绍。
另外文中阐述若有不(够)正确之处,望广大网友“友好”指正。
分享到:
相关推荐
源码(导入MyEclipse可用) 博文链接:https://yuanyan.iteye.com/blog/1534811
服务器推送pushlet使用示例(内附多个详细而完整的例子),稍加改动就可以直接运用在项目中
实现多个客户端连接到web服务器,由服务端推送消息至客户端(或指定id的客户端),代码中没有用官网的jar文件,而是用的源码,做了一定的修改,实现了每个客户端都可以自定义id,然后服务端可以向指定id客户端推送消息...
对comet实现中的pushlet框架进行说明,可以参照该说明进行框架使用
java web开发中服务器推送pushlet.jar解决中文乱码
基于长连接的HTTP服务器推送技术 介绍长连接机制和实现方法
使用开源框架pushlet实现的http长连接技术(服务器推技术),里面有pushlet框架的源码以及使用文档(服务器推、一对多、点对点)
服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet
网页推送pushlet的demo
pushlet系统消息推送demo,pushlet消息推送示例
使用Pushlet来实现服务器端向客户端推送信息
ibm二00八年技术报告,讲解服务推送技术
PushLet实例,实现服务器消息推送,完整实例,导入myeclipse 即可
一个基于pushlet推送的小例子,直接tomcat下运行就行
pushlet实现服务器端向客户端推送消息,包括广播式推送、指定ID推送等等,本人总结
pushlet配置应用实例,看了之后就能简单应用pushlet实时推送数据
自己学习所写,实例中注释较多且详细。实现定时周期性推送、按需求广角推送和点对点推送。包含重新Pushlet的js和java代码。
pushlet定时向前台推送消息,可以直接运行
官方pushlet2.0.4消息推送框架 增加了指定人推送