问题描述
我是长轮询请求概念的新手,并且遇到了从 Angular 项目到 PHP XAMPP 本地服务器的请求的问题。 当请求时间限制设置为 0 时像
set_time_limit(0);
请求永远存在。即使在客户端重新加载网站页面或关闭整个选项卡后,请求也不会停止处理脚本并不断重复它。 如果客户端重新加载网站页面 10 次然后关闭选项卡,PHP 服务器将继续处理 10 个不同的请求。
我想知道如何避免这种情况,或者,一旦客户端无法通过重新加载/离开页面来接收其响应,如何退出请求?
我的api代码:
set_time_limit(0);
$accountId = 1;
$database = DBManager::link();
while (true) {
$database->call('account_get_notifications_updates')
->value('_accountId',$accountId,DBParams::INT);
if ($database->run()) {
$sqlResults = $database->fetchArray();
$returnValue = $database->getReturnValue();
if ($returnValue == 0) {
// add the new notifications to the response and exit
$this->Response->SetData($sqlResults['dataSet2']);
break;
} else {
sleep(30);
continue;
}
}
throw new \Exception($database->getError()->message);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)