123456789101112131415161718192021222324 |
- %% This module enables/disables compression
- %% every time it echoes a frame.
- -module(ws_deflate_commands_h).
- -behavior(cowboy_websocket).
- -export([init/2]).
- -export([websocket_handle/2]).
- -export([websocket_info/2]).
- init(Req, RunOrHibernate) ->
- {cowboy_websocket, Req,
- #{deflate => true, hibernate => RunOrHibernate},
- #{compress => true}}.
- websocket_handle(Frame, State=#{deflate := Deflate0, hibernate := run}) ->
- Deflate = not Deflate0,
- {[Frame, {deflate, Deflate}], State#{deflate => Deflate}};
- websocket_handle(Frame, State=#{deflate := Deflate0, hibernate := hibernate}) ->
- Deflate = not Deflate0,
- {[Frame, {deflate, Deflate}], State#{deflate => Deflate}, hibernate}.
- websocket_info(_Info, State) ->
- {[], State}.
|