我似乎无法使用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);
Run Code Online (Sandbox Code Playgroud)
在Apache中,它可以正常工作,虽然它有点延迟.即,当我在"3"时按下浏览器上的停止按钮时,"测试"文件显示"8".这是一个可接受的余量,但在nginx上,它似乎没有向'test'文件输出任何内容.
检查你的Nginx配置,应该有
fastcgi_ignore_client_abort off;
Run Code Online (Sandbox Code Playgroud)
此配置键具有off
默认值,因此即使您完全没有fastcgi_ignore_client_abort
,您的脚本也应该按预期工作.