[99s-extend] timeouts and slow clients in cowboy loop handler
akonsu
akonsu at gmail.com
Fri Sep 20 20:59:46 CEST 2013
Understand about chunks being synchronous. that helps me tremendously to
understand how it works.
would you give me a sketchy example of how to use send_after in a loop
handler? (sorry I am new to erlang)
Konstantin
2013/9/20 Loïc Hoguin <essen at ninenines.eu>
> 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<Extend at lists.ninenines.eu>
>> >
>> http://lists.ninenines.eu:81/_**_listinfo/extend<http://lists.ninenines.eu:81/__listinfo/extend>
>>
>> <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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ninenines.eu/archives/extend/attachments/20130920/4c005881/attachment.html>
More information about the Extend
mailing list