我正在使用 Zend Framework 构建聊天功能。
在javascript中,我使用ajax来请求这样http://mydomain.com/chat/pull
的函数pullAction
public function pullAction() {
while ( true ) {
try {
$chat = Eezy_Chat::getNewMessage();
if($chat){
$chat->printMessage();
break;
}
sleep ( 1 ); // sleep 1 secound between each loop
} catch ( Zend_Db_Adapter_Exception $ex ) {
if ($ex->getCode () == 2006) { // reconnect db if timeout
$dbAdapter = Zend_Db_Table::getDefaultAdapter ();
$dbAdapter->closeConnection ();
$dbAdapter->getConnection ();
}
}
}
}
此操作将一直运行,直到其他用户发送一些消息。
但是,当这个请求正在运行时,我无法访问我网站上的任何其他页面。他们都等待http://mydomain.com/chat/pull
完成它的执行。
我在谷歌上寻找解决方案,但仍然没有找到。
感谢您的帮助。