php server side events [sse]

dmiller at amfes.com dmiller at amfes.com
Wed Aug 26 23:53:31 UTC 2015


I thought I had done both...not seeing any difference in behaviour.

---
Daniel

On 2015-08-26 14:08, Maxim Dounin wrote:
> Hello!
> 
> On Wed, Aug 26, 2015 at 12:33:48PM -0700, dmiller at amfes.com wrote:
> 
>> I have several virtual servers operating with php-fpm perfectly fine.
>> Buffering/caching with Wordpress is great.  But now...
>> 
>> I'm trying to implement a new site that uses php for server-side 
>> events to
>> stream live updates to clients.  This is, I believe, properly done 
>> with an
>> infinite loop in php that will send events as they occur.  The problem 
>> is
>> the events seem to be getting buffered and don't appear.
>> 
>> If I write the php program to end after sending an event then it 
>> works.  If
>> I restart php-fpm then it works - at least for a while.
>> 
>> I've tried numerous config options - obviously what I'm trying isn't
>> working.  Any suggestions?
> 
> By default, nginx only starts sending data to a client once it has
> a full buffer ready.  If you want to stream data immediately,
> you have to switch off buffering - either with the fastcgi_buffering
> directive, or using the X-Accel-Buffering header in a response.
> See http://nginx.org/r/fastcgi_buffering for details.
> 
> Additionally, there are some buffering option in PHP.  I'm not a
> PHP expert, but likely flush() function will help if the problem
> is on PHP side, see http://php.net/manual/en/function.flush.php.



More information about the nginx mailing list