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碰到同样问题的人有所帮助。

 

你可能感兴趣的:(.net,windows,应用服务器,工作,浏览器)