网页在线聊天实现/ajax长轮询(ajax long polling)
要达到实时返回服务器端的数据的效果。需要使用“服务器推送技术(server push)”
有一篇好文章,“Comet:基于 HTTP 长连接的“服务器推”技术”,
腾讯webQQ和百度hi网页版,都是采用了ajax long polling,不过webQQ采用的是ajax跨域。
while(true){ //在服务器端做阻塞,看起来就是死循环,我们可以获取当前执行时间与请求时间相减,在规定的时间段内为true
$result=$db->getNewMsg();//获取最新数据
if(count($result)>0){
//输出json或xml
}else sleep(1);//让服务器休息1秒,减少资源消耗
}
if(!$result) //输出超时信息,前端接收到超时信息则发起下一轮ajax请求
查看完整版本: 网页在线聊天实现/ajax长轮询(ajax long polling)
Tags: ajax