Heim > Backend-Entwicklung > PHP-Tutorial > 求教一个 ajax 的长连接有关问题。

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

WBOY
Freigeben: 2016-06-13 13:16:25
Original
766 Leute haben es durchsucht

求教一个 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() 就可以了
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage