原文出自 https://www.oschina.net/question/1172551_218058
当然,微信扫码登录使用的是基于事件驱动的反向ajax,腾讯不会傻到使用轮询的,轮询,有时间片差,体验不够好,而且对服务器负载造成很大浪费。通过对微信的web页面数据分析,应该能发现,在没有任何操作的时候,web微信维持了一个27秒的request,也就是它采用的是http long polling。
整个流程的通信过程看图:
具体实现可以参考:http://www.cnblogs.com/fengyun99/p/3541249.html
目前可以实现反向ajax的方式有如下几个例子可供参考:
反向 Ajax,第 1 部分: Comet 简介
http://www.ibm.com/developerworks/cn/web/wa-reverseajax1/
反向 Ajax,第 2 部分: WebSockets
http://www.ibm.com/developerworks/cn/web/wa-reverseajax2/反向 Ajax,第 3 部分: Web 服务器和 Socket.IO
http://www.ibm.com/developerworks/cn/web/wa-reverseajax3/
反向 Ajax,第 4 部分: Atmosphere 和 CometD
http://www.ibm.com/developerworks/cn/web/wa-reverseajax4/
反向 Ajax,第 5 部分: 事件驱动的 Web 开发