aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/manual/cowboy_websocket.asciidoc
AgeCommit message (Collapse)Author
2018-11-12Add deflate options for Websocket compressionLoïc Hoguin
They allow the server to configure what it is willing to accept for both the negotiated configuration (takeover and window bits) and the other zlib options (level, mem_level and strategy). This can be used to reduce the memory and/or CPU footprint of the compressed data, which comes with a cost in compression ratio.
2018-06-26Add missing frame types to websocket_handle specs/docsLoïc Hoguin
Thanks Artem.
2018-06-06Fix an incorrect section_title level in the manualLoïc Hoguin
2018-03-28Add max_frame_size option for websocket handlersKirill Kinduk
Option allows to limit a frame by size before decoding its payload. LH: I have added a test for when the limit is reached on a nofin fragmented frame (the last commit addressed that case but it had no test). I have fixed formatting and other, and changed the default value to infinity since it might otherwise be incompatible with existing code. I also added documentation and a bunch of other minor changes.
2017-10-02Document cow_ws:frame in Cowboy for nowLoïc Hoguin
2017-09-04Fix more documentation todosLoïc Hoguin
I have decided not to include a manual page for cowboy_stream_h at this point because it clashes with the cowboy_stream manual page. This decision will be revisited in the future.
2017-05-28Introduce the req_filter Websocket optionLoïc Hoguin
This option allows customizing the compacting of the Req object when using Websocket. By default it will keep most public fields excluding headers of course, since those can be large.
2017-02-18Allow passing options to sub protocolsLoïc Hoguin
Before this commit we had an issue where configuring a Websocket connection was simply not possible without doing magic, adding callbacks or extra return values. The init/2 function only allowed setting hibernate and timeout options. After this commit, when switching to a different type of handler you can either return {module, Req, State} or {module, Req, State, Opts} where Opts is any value (as far as the sub protocol interface is concerned) and is ultimately checked by the custom handlers. A large protocol like Websocket would accept only a map there, with many different options, while a small interface like loop handlers would allow passing hibernate and nothing else. For Websocket, hibernate must be set from the websocket_init/1 callback, because init/2 executes in a separate process. Sub protocols now have two callbacks: one with the Opts value, one without. The loop handler code was largely reworked and simplified. It does not need to manage a timeout or read from the socket anymore, it's the job of the protocol code. A lot of unnecessary stuff was therefore removed. Websocket compression must now be enabled from the handler options instead of per listener. This means that a project can have two separate Websocket handlers with different options. Compression is still disabled by default, and the idle_timeout value was changed from inifnity to 60000 (60 seconds), as that's safer and is also a good value for mobile devices.
2016-12-23Update cowboy_loop manualLoïc Hoguin
2016-12-23Update the cowboy_handler manualLoïc Hoguin
Also fixes a small mistake in cowboy_websocket.
2016-12-22Update cowboy_websocket_manualLoïc Hoguin
2016-08-31Update websocket documentation: based on ↵Alex Prut
https://github.com/ninenines/cowboy/blob/master/examples/websocket/src/ws_handler.erl
2016-01-14Convert the documentation to AsciidocLoïc Hoguin
A few small revisions were made, and Erlang.mk has been updated.