发布网友
共2个回答
热心网友
可能用的是AJAX技术
如果按你说的话 不刷新应该是用的P2P技术
P2P网络通常用于通过Ad Hoc连接来连接节点。这个可以用于多种用途,各种档案分享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。
下面有一段文字供你参考
首先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 id="conn_frame1" name="conn_frame1" src="http://web-proxy.qq.com" style="display:none;"> </iframe>
<iframe id="conn_frame2" name="conn_frame2" src="http://web-proxy2.qq.com" style="display:none;"> </iframe>
<iframe id="chatlog" name="chatlog" src="" style="display:none;"> </iframe>
<iframe id="filelog" name="filelog" src="" style="display:none;"> </iframe>
应该是以某个iframe以某种方法与服务器保持连接,这是如何实现的?
如何“通知”让客户端主动的去发起请求去服务器获取数据?
请到web.qq.com看一下实现后进行讨论~
来自http://www.iqidi.com/Articles/2009-12-25%23374.htm可以去看看
还有一种说法是comet技术
见下网址http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
热心网友
comet技术。叫做服务器推技术。