当前位置: 代码迷 >> Web前端 >> 腾讯WebQQ聊天架构分析一
  详细解决方案

腾讯WebQQ聊天架构分析一

热度:159   发布时间:2012-07-02 17:46:22.0
腾讯WebQQ聊天架构分析1

腾讯WebQQ聊天架构分析1
2010年07月21日
  有言在先:WebQQ页面的代码量很大,限于精力只能分析局部,限于水平可能分析有误,有兴趣者可以一起讨论,共同学习!
  一、WebQQ的客户端技术
  1. 跨域的长轮询ajax
  WebQQ使用长轮询ajax来接收即时信息。
  跨域的实现是在主页面中嵌入隐藏的iframe帧,并在该iframe文件中的head中嵌入ajax/js代码,实现通讯调用,对于iframe中ajax因为完全同源也就不存在跨域问题,而iframe和主页只是跨子域,使用脚本document.domain = 'qq.cm'即可解决。
  iframe中的ajax使用了Yahoo的YUI库(YUI.Connect/http://developer.yahoo.com/yui/docs/connection.js. html)并稍加修改,代码进行了压缩,并进行了变量名替换!
  点评:如果在主页中直接使用ajax虽然没有了跨域问题,但是聊天服务器要做稍微复杂一些的负载平衡而且效果也未必好;而使用嵌入的iframe,负载平衡就简单很多,例如:http://web-proxy14.qq.com (其中的14应该是服务器的编号),在线人数增多,直接添加服务器就可以。