web.qq.com实现方法的讨论,如何实现的即时信息收发?
|
admin
2010年4月30日 23:57
本文热度 6555
|
首先webqq没是使用flash作为长连接代理。
其使用了yahoo的ajax工具包。
使用中,20秒进行一次http://web-proxy.qq.com/conn_s post请求,内容为:
http/1.1 200 ok
content-type: text/html; charset=utf-8
cache-control: private
server: qq/j.vn
content-length: 0
20秒一次,并且内容为空,的post,这个应该是判断用户离线使用的。而并非取得任何新数据。
比较奇怪的,任何一个用户发信息给正在使用webqq的用户,立刻webqq用户会自己,主动的发起一次对 http://web-proxy.qq.com/conn_s post请求
来获得新的聊天内容数据,内容如下:
http/1.1 200 ok
content-type: text/html; charset=utf-8
cache-control: private
server: tencent_http_server
content-length: 68
1034456174;17;3088;313033262;275062;09;0b;test123;1241812821;575540857;
聊天内容是test123,可以看到并未进行加密之类,不过这不再本文讨论范围,
我想知道的是,web qq是如何即时的获得有信息到来的这个“通知”让客户端主动的去发起请求去服务器获取数据?
我过了一遍代码,绝不是简单的轮询之类,因为没有任何延迟,如果是轮询总会有延迟。而且看链接状态也没有显式的长连接。
他页面上有4个iframe
应该是以某个iframe以某种方法与服务器保持连接,这是如何实现的?
如何“通知”让客户端主动的去发起请求去服务器获取数据?
回复帖子:http://topic.csdn.net/u/20090504/15/1b34df3f-3d28-4832-9e5d-6d351e322321.html
该文章在 2010/4/30 23:57:01 编辑过