因为项目需要(需要及时传送比赛即时信息),用到了Pushlet。按照网上其他人共享的一些文档进行开发,在调试过程中发现,有些浏览器(比如傲游2.5、TT等)无法获取服务端传送的数据,查看pushlet记录的日志,发现用傲游2.5或TT访问项目网页,日志出现类似下面的记录:
[http-80-18] INFO pushlet - S-113.116.44.117[zozonebywu]: [Controller] Listening mode=stream userAgent=mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; maxthon 2.0)
[http-80-10] INFO pushlet - S-113.108.92.78[zozonebywu]: [Subscriber] Subscription added subject=/score sid=lacah label=null
[http-80-10] INFO pushlet - S-113.108.92.78[zozonebywu]: [Controller] Listening mode=stream userAgent=mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; maxthon 2.0)
[http-80-15] INFO pushlet - S-113.108.92.78[zozonebywu]: [Subscriber] Subscription added subject=/score sid=dedok label=null
[http-80-15] INFO pushlet - S-113.108.92.78[zozonebywu]: [Controller] Listening mode=stream userAgent=mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; maxthon 2.0)
[http-80-16] INFO pushlet - S-113.108.92.94[zozonebywu]: [Subscriber] Subscription added subject=/score sid=cyjog label=null
[http-80-16] INFO pushlet - S-113.108.92.94[zozonebywu]: [Controller] Listening mode=stream userAgent=mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; maxthon 2.0)
[http-80-10] INFO pushlet - SessionManager: Tue Jan 25 10:15:19 CST 2011 zozonebywu at 113.108.92.94 removed
[http-80-10] WARN pushlet - Pushlet: bad request, no session found id=zozonebywu event=hb
[http-80-10] WARN pushlet - Pushlet: bad request, no session found id=zozonebywu event=listen
每次访问,出现三个IP用同样的id的访问记录,然后被pushlet断掉了session,导致服务端传送的及时信息无法获取。
而用火狐、搜狗、傲游3.0等浏览器访问则不会出现该问题。
这个问题在网上找了很久,一直没明白是什么原因,因为有的浏览器可以,有的却不行。直到今天,想到是否是模式设置的问题,pushlet支持pull和stream两种模式,我现在用到的是默认的stream模式。想到这儿,我修改了pushlet.properties文件中的listen.force.pull.all参数为true,然后重启应用,居然可以了。但是是什么原因我就不甚明了,需要继续深入了解pushlet的工作原理。
在此仅将我碰到的问题和处理结果共享给大家,希望能对使用pushlet碰到同样问题的人有所帮助。
分享到:
相关推荐
2. 在Pushlet配置中设置正确的字符编码。这可能需要修改Pushlet源码或在Servlet配置中指定。 3. 在发送中文数据时,确保数据已经被正确地编码为字节流,然后再传递给Pushlet进行推送。 在提供的项目说明文档中,...
Pushlet技术则打破了这种模式,它允许服务器主动向客户端推送数据,无需客户端持续不断地发起请求。 Pushlet的核心组件是Pushlet Server和Pushlet Client。Pushlet Server作为服务端,接收并处理客户端的连接,当有...
Pushlet框架的设计旨在克服传统的HTTP协议中客户端请求、服务器响应的被动通信模式,转而采用一种更加高效、实时的方式进行数据传输。 在Web应用中,传统的HTTP连接是短连接,即客户端发起请求后,服务器响应并关闭...
PushLet就是为了解决这个问题,它允许服务器主动向客户端推送数据,无需客户端不断轮询。 PushLet的核心概念是“Push Channel”(推送通道)。服务器创建一个Push Channel,客户端订阅这个通道,然后服务器可以在...
分析这个文件可以帮助你更好地理解和使用Pushlet框架,例如,你可以找到服务器如何处理推送事件,客户端如何建立连接,以及如何调试和解决问题的线索。 总之,Pushlet作为Comet的一种实现,提供了高效且灵活的...
6. **实例应用**:描述中提到的实例可能包含如何设置Pushlet服务器,配置客户端连接,以及如何实现消息的发送和接收。这通常涉及到编写Servlet、JavaScript代码,以及可能的XML配置。 7. **兼容性和跨平台**:...
然而,Pushlet技术打破了这一模式,使得服务器可以在客户端没有明确请求的情况下主动推送数据,极大地提高了交互性和实时性。这对于实时聊天、股票报价、在线游戏等需要即时更新信息的应用场景非常有用。 描述中...
在当今的Web开发中,实时通信技术已经成为了一项不可或缺的技能,而Pushlet的Ajax-pushlet-client.js则是实现服务器“推”技术的重要工具。本文将深入剖析这个JavaScript库的核心原理,帮助开发者理解其内部机制。 ...
通过这个小例子,你可以直观地了解Pushlet框架的工作流程,并学习如何在自己的项目中集成和使用Pushlet。 **总结** Pushlet框架为Java开发者提供了一种实现服务器到客户端实时数据推送的有效工具,通过克服HTTP的...
在Web应用中,Pushlet服务通常用于实现数据的即时更新,比如股票报价、聊天室消息、在线游戏状态更新等场景,极大地提高了用户体验。 Pushlet的核心概念是“订阅/发布”模型,即Subscriber(订阅者)和Publisher...
pushlet例子,Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的...
5. **安全性与性能**:由于Pushlet涉及到服务器主动推送,因此需要考虑安全问题,比如防止恶意攻击,控制推送频率以避免服务器过载,以及保护用户隐私等。同时,为了优化性能,可能需要实现负载均衡和缓存策略。 6....
在这个“pushlet简单demo”中,可能包含了以下内容: - Pushlet或Comet4j的核心类和接口,用于建立和维护长连接。 - 客户端的JavaScript代码,用于初始化连接、接收推送数据和处理推送事件。 - 服务器端的Java代码...
Pushlet 的实现大量使用了单例、工厂模式、适配器模式和命令模式,强调面向接口和抽象类编程,便于理解和扩展。系统属性主要在配置文件中定义,通过扩展点可以方便地替换默认实现。请求处理的入口始于pushlet的Init...
通过源码分析,可以了解Pushlet如何利用HTTP长连接维持会话,以及如何处理并发和数据推送等关键问题。 4. **使用示例**:"使用 Java 实现 Comet 风格的 Web 应用.html" 和 "Comet:基于 HTTP 长连接的“服务器推”...
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...
在当今的互联网应用中,实时性成为了不可或缺的需求,无论是即时通讯、在线游戏还是股票交易,都需要服务器能够主动向客户端推送信息,而不是传统的请求-响应模式。这就是服务器推送技术的核心所在。本文将深入探讨...
在传统的HTTP请求-响应模型中,客户端必须主动发起请求才能获取服务器端的数据,而Pushlet则打破了这种模式,允许服务器端在有新数据时主动推送给客户端,无需客户端持续不断地轮询。 Pushlet系统的核心组件包括...
"使用Pushlet实现点对点发送.docx"和"使用Pushlet实现一对多的信息推送.docx"则分别介绍了这两种推送模式的实现方法。 通过深入研究这些文档和源码,你可以了解到Pushlet是如何在底层利用HTTP长连接来实现实时通信...
标题中的“通过推送机制(Tomcat comet,pushlet)实现进度条”涉及到的是Web应用中的一种实时通信技术,主要用于提供动态更新和用户交互。这里主要介绍Tomcat的Comet和Pushlet技术,以及如何利用它们来创建一个...