PHP长轮询请求问题

问题描述

我是长轮询请求概念的新手,并且遇到了从 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 (将#修改为@)