如下:
php实现实时通信一般有两种方式:socket或comet。
socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。
comet(基于>
js用定时器周期性向服务器发送请求,模拟实时刷新。这里分长轮询和短轮询。
区别是:长轮询在没有数据更新时,不会立刻返回结果而是在服务器端hold住,直到有数据更新再返回结果。
短轮询无论数据是否有更新,都立刻返回结果。
这种做法服务器开销较大,2websokect,html5的新特性,可以在前后端建立双向通信
缺点是部分浏览器不支持。b/s架构的系统其实实现即使通信是比较有难度的,因为很难实现服务器推送
目前主流是用js轮询实现,但只要能通过代码减小服务器开销,也能达到比较好的效果。
这要求刷新的窗口有一个名称,例如windowA。在要关闭的页面加入<body onunload="javascript:windowAlocationreload()">
如果要刷新的是将要关闭页面的父窗口,则可以在要关闭的页面加入
<body onunload="javascript:windowopenerlocationreload()">阿里使用nodejs的场景有很多。实时应用:如在线聊天,实时通知推送等等(如socketio)分布式应用:通过高效的并行I/O使用已有的数据。工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序。游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架),利用稳定接口提升Web渲染能力。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)