I can't seem to get the function connection_aborted to work with nginx. The code I used to test is as follow:
<?php
ignore_user_abort(true);
ob_implicit_flush();
$i = 0;
while (!connection_aborted()) {
echo $i;
$i++;
sleep(1);
}
file_put_contents('test',$i);
In Apache, it works correctly, although it delays a little. i.e. When I press stop button on browser when "3", the 'test' file shows "8". That is an acceptable margin, but on nginx, it doesn't seem to output anything to the 'test'开发者_StackOverflow社区 file.
Check your Nginx configuration, it should have
fastcgi_ignore_client_abort off;
This configuration key has off
as the default, so even if you have no fastcgi_ignore_client_abort
at all, your script should work as expected.
My guess is that "connection_aborted()" is unable to detect the "ABORTED" connection
(and the script is still running)
精彩评论