[99s-extend] timeouts and slow clients in cowboy loop handler

Loïc Hoguin essen at ninenines.eu
Fri Sep 20 20:56:31 CEST 2013


chunk only returns when the client has received the chunk, so the 
timestamps solution should work.

As for the timeout, you can simply use erlang:send_after or something 
like usual and the message will arrive in info/3.

On 09/20/2013 08:54 PM, akonsu wrote:
> thanks!
>
> how to implement timeout callback manually? if I had receive then I
> would just use timeout clause there, but with the handler I do not know...
>
> I have doubts about validity of my question on the erlang list.  I later
> realised that there is no problem receiving messages in my handler from
> my upstream process, I can do it fast enough and shove everything to the
> response. my real problem is to determine if the http client is reading
> fast enough from the response...
>
>
> 2013/9/20 Loïc Hoguin <essen at ninenines.eu <mailto:essen at ninenines.eu>>
>
>     Loop handlers close after a while regardless of what you send, it
>     only checks what the client sends. The best way for you would be to
>     disable that timeout and handle it manually.
>
>     As for the second question, I'm still reading the thread on
>     erlang-questions but I've seen some good ideas about timestamps so far.
>
>
>     On 09/20/2013 08:47 PM, akonsu wrote:
>
>         Hi,
>
>         I am using loop handler and I stream from it:
>
>         info({stream, Part}, Req, S) ->
>               ok = cowboy_req:chunk(Part, Req),
>               {loop, Req, S, hibernate};
>
>         I have two questions:
>
>         1. on timeouts cowboy sends 204 No Content. In my case it is not the
>         right response because I may have already sent some data. Is
>         there a way
>         to send a custom response?
>
>         2. how to check if the client is too slow and is not reading the
>         response stream fast enough? If this happens, then I need to
>         disconnect.
>
>         I can live without 1. but I need to figure out 2. Please help.
>
>         thank you!
>         Konstantin
>
>
>
>         _________________________________________________
>         Extend mailing list
>         Extend at lists.ninenines.eu <mailto:Extend at lists.ninenines.eu>
>         http://lists.ninenines.eu:81/__listinfo/extend
>         <http://lists.ninenines.eu:81/listinfo/extend>
>
>
>
>     --
>     Loďc Hoguin
>     Erlang Cowboy
>     Nine Nines
>     http://ninenines.eu
>
>


-- 
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu



More information about the Extend mailing list