gpt4 book ai didi

php - 这是合法的长轮询方法吗?

转载 作者:行者123 更新时间:2023-11-29 14:12:30 25 4
gpt4 key购买 nike

这个 PhP 脚本是长轮询的合法方法还是对服务器造成负担?

$FoundNewContent = false;

$tokens = array();

while(!$FoundNewContent) {
usleep(300000);
clearstatcache();
$SQL1 = "SELECT * FROM tokens WHERE ID > ".$_GET['tokenID'];
$result1 = mysql_query($SQL1);
while($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
array_push($tokens, $row1);
$FoundNewContent = true;
}
}

// Parse XML array

flush()

我通过 Ajax 调用此脚本。

最佳答案

取决于您的服务器设置 - 只要您不使用 session ,它就应该可以正常工作,但如果一次有太多连接,则可能会导致服务器停止运行。

此外,我会添加一个时间限制,它不会返回任何内容并重新启动轮询。否则,如果不添加数据并且服务器超时设置为无限制,则脚本可能会永远运行。我通常会添加 30 秒的限制。

类似于:

$FoundNewContent = false;
$tokens = array();
$time = time();
while(!$FoundNewContent) {
usleep(300000);
clearstatcache();
$SQL1 = "SELECT * FROM tokens WHERE ID > ".$_GET['tokenID'];
$result1 = mysql_query($SQL1);
while($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
array_push($tokens, $row1);
$FoundNewContent = true;
}
if($time<time()-30) break;
}
flush()

关于php - 这是合法的长轮询方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com