我似乎无法将函数connection_aborted与nginx一起使用。我以前测试的代码如下:
<?php
ignore_user_abort(true);
ob_implicit_flush();
$i = 0;
while (!connection_aborted()) {
echo $i;
$i++;
sleep(1);
}
file_put_contents('test',$i);
在Apache中,它可以正常工作,虽然它有点延迟。即,当我在“3”时按下浏览器上的停止按钮时,“测试”文件显示“8”。这是一个可接受的余量,但在nginx上,它似乎没有输出任何“test”文件。
答案 0 :(得分:5)
检查你的Nginx配置,它应该有
fastcgi_ignore_client_abort off;
此配置密钥默认为off
,因此即使您根本没有fastcgi_ignore_client_abort
,您的脚本也应按预期工作。
答案 1 :(得分:0)
我的猜测是“connection_aborted()”无法检测到“ABORTED”连接 (并且脚本仍在运行)