【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
1. 基于ajax定时普通轮询
2. 基于ajax的长轮询 比第一种好
3. 基于web socket服务端推送 最佳
最简单的暴力的 ajax轮训!!不推荐!
稍微好一点点的 webSocket···
1. 基于ajax定时普通轮询
2. 基于ajax的长轮询 比第一种好
3. 基于web socket服务端推送 最佳
单页面(只在一个页面做轮询)
+ setInterval间隔被动轮询(keep-alive持久连接 ,比如30秒)
+ window.onfocus窗口获得焦点主动触发(event-driven)
window.onblur = function() {document.title = '失去焦点';};
window.onfocus = function() {document.title = '获得焦点';};
轮询间隔时间过短,用户打开页面过多,可能会导致服务器压力过大.
对于实时性要求不高的业务,可以把间隔时间加大,比如2分钟轮询1次.
WebSocket需要浏览器支持HTML5,而且服务器端编程难度也要大于HTTP.
而 间隔轮询 + 焦点触发 这些IE6都支持,编程者只需用一个jQuery就能很好地处理AJAX和DOM,服务器端可以用传统的PHP,实现起来难度并不大.
问答社区 https://segmentfault.com/index.php 用的也是"间隔轮询",只不过其并没有使用"焦点触发",
而是用了 HTML5 Page Visibility API 在窗口再次可见时触发AJAX消息查询,实现消息通知.
如果你要用WebSocket,可以看看WorkerMan和峰哥的PHP Swoole:
WorkerMan HTTP WebSocket聊天室Demo:
http://www.workerman.net/applications
http://chat.workerman.net/
http://kedou.workerman.net/
PECL扩展Swoole支持使用PHP来编写高性能的socket应用:
pecl remote-info swoole
http://www.swoole.com
http://git.oschina.net/matyhtf/swoole/blob/master/examples
PHPWebIM是Swoole官方基于PHP Swoole扩展和Swoole Framework开发的WebSocket网页即时聊天工具.
PHPWebIM支持WebSocket+Comet两种协议,可用于所有种类的浏览器包括IE.
https://github.com/matyhtf/PHPWebIM
Demo: http://webim.swoole.com
最简单的暴力的 ajax轮训!!不推荐!
稍微好一点点的 webSocket···