`
yicw
  • 浏览: 17358 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Pushlet中模式设置的问题

阅读更多

因为项目需要(需要及时传送比赛即时信息),用到了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碰到同样问题的人有所帮助。

 

0
5
分享到:
评论
1 楼 sww176 2011-09-27  
还有一个地方,是设置超时的,超市之后,session也会被清理掉

比如浏览器有长时间没响应等情况

如果想要恢复过来,还能接受消息,就把超时设长一点,根据使用模式的,分别设置
pushlet.properties文件中的pull.refresh.timeout.millis或poll.refresh.timeout.millis就可以了。

相关推荐

Global site tag (gtag.js) - Google Analytics