0

I was wanting to log to Keen.IO (an external logger service) after a php session was over but I didn't want the user to need to wait for that process to finish. Is there a way to end the connection with the client before this happens? Additionally, I didn't want the client session to hang if for some reason the Keen.IO service goes down.

David
  • 1,648
  • 1
  • 16
  • 31

1 Answers1

1

You can forcefully close the connection with fastcgi_finish_request() if you're using PHP-FPM. See this answer for more details.

<?php
echo 'Page content';
fastcgi_finish_request(); // cut connection
do_logging();

I have tried other methods before (eg. setting HTTP headers to disable keep-alive and defining the response length), but none of them worked. So if you're not using FPM, you're out of luck.

Community
  • 1
  • 1
Anonymous
  • 11,740
  • 3
  • 40
  • 50