Home  >  Article  >  Backend Development  >  求教一个 ajax 的长连接有关问题。

求教一个 ajax 的长连接有关问题。

WBOY
WBOYOriginal
2016-06-13 13:16:25717browse

求教一个 ajax 的长连接问题。。
小弟在做一个类似webQQ的聊天网页,本来是通过ajax每两秒发送一次请求获取信息,现在想改为一个消息发出去后,如果没有新消息服务器则不返回,遇到新消息后由服务器返回,客户端再发一个请求,
但是实现过程中发现,当这个消息在等待的时候,新创建的别的ajax请求也在等待,貌似要等这个返回之后,其它的才继续执行,但是ajax创建一个对象之后,应该互相就没关系了呀?我是用的jquery ajax
PHP这边我是这样写的:
while(($res->num_rows)==0){
$res->close();
sleep(1);
$res=$mysqli->query($sql);
}

当把这段while注释掉,客户端采用每2s发送一次请求时无任何问题
客户端代码:
function get_msg(){
$.post("/lts/class/get_msg.php","lst_msg="+lst_msg,function Get_msg_callback(msg_back){
var i=0;
while(msg_back[i].msg!=""){
$('.msgs_box').append("

"+msg_back[i].sender+" : "+msg_back[i].msg+"
");
lst_msg=msg_back[i].id;
i++;
}
//立即调用
//get_msg();
},"json");
return;
}

------解决方案--------------------
是你的session问题

建议在无session更改的页面 session_start 以后马上 session_write_close() 就可以了
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn