Loïc Hoguin
Loïc Hoguin
Currently we accumulate everything and give the handler the resulting data. We may want to allow handlers to get fragments directly and decide what to do (like stream the contents...
Sometimes it is useful to perform synchronous requests to the Websocket handler, for example for retrieving state. We should leverage the gen:call interface and have a websocket_call callback. websocket_call and...
This code is not obvious to debug: ``` erlang reply(_, _, _, #{has_sent_resp := _}) -> error(function_clause); ``` Perhaps a better error than `function_clause` should be raised.
It's currently annoying to do multiple calls to set a response body, with the content-type and other headers set. Have one convenient function to do everything.
We must crash the handler when it tries to send data after the fin flag has been set. We also must if it tries to send data after calling reply....
We must crash the handler when it tries to send a reply twice. This includes: - calling reply/stream_reply twice - calling set_resp_* after a reply/stream_reply - calling push after reply/stream_reply...
More limits! Should also consider limiting their size etc. like in HTTP/1.1.
While the query string overall has an upper limit in the number of characters, the same is not true for the parsed representation which takes more memory than the string...
While Cowboy provides a convenient stream handler for dealing with compressed output, users may want more fine grained control, per resource.
The scheduler can do two things as far as Erlang is concerned: * By adding a limit to the number of concurrent processes for a connection (which may not be...