• 六月
  • 15
  • load

高性能AJAX模拟WebSocket实现实时通讯 2017-06-15 23:34:50

曾经在工作中,老板问到:“能不能做个二维码登录?”

我第一反应想到用websocket,可是用了这个,想兼容IE10-会非常麻烦,如果用ajax实时监听是否有扫描,又非常消耗服务器资源,考虑到项目比较赶,我捂着良心说了句“可以,不过不兼容IE10-”

每次想起这点,都会为自己能力有限而感到惭愧,既然最近有空了,那么把思路从新整理一下

通过度娘得到的,多半是通过flash创建socket连接,或者是旧版的socket.io;最后我还是决定观察可二维码登录的网站

首先打开网页版微信,接着打开审查元素的Network……

微信二维码登录

这……不是socket!!是AJAX,不过读取速度非常慢,大概25秒读取一次,看到这个结果脑里思路不禁整理了一番,说白了就是服务器增加了一个睡眠,不过这样的确能在某种程度上模拟socket的效果,而且兼容性也很好,对服务器压力也不会很大,也不用引入什么flash,就算PHP虚拟空间不允许你使用socket也不会有任何影响

先上前端代码

客户端

服务端(PHP),命名为server.php:

直接在php环境下创建这两个文件即可,为了方便演示,用IO代替DB,同时只为了把思路写出来,并不会像写项目那么严谨,如果直接拿来用需谨慎

那么,在最后,我们看下效果吧:

最终效果

原创文章,转载请注明出处

正在加载评论...

0 / 240

警告

确定