From f5015cb14bbadef95285460f3d842fbbb05c33c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 16 Nov 2018 13:48:15 +0100 Subject: Add the set_options Websocket command It allows overriding the idle_timeout option only for now. --- test/handlers/ws_set_options_commands_h.erl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/handlers/ws_set_options_commands_h.erl (limited to 'test/handlers') diff --git a/test/handlers/ws_set_options_commands_h.erl b/test/handlers/ws_set_options_commands_h.erl new file mode 100644 index 0000000..88d4e72 --- /dev/null +++ b/test/handlers/ws_set_options_commands_h.erl @@ -0,0 +1,20 @@ +%% This module sets options based on the frame received. + +-module(ws_set_options_commands_h). +-behavior(cowboy_websocket). + +-export([init/2]). +-export([websocket_handle/2]). +-export([websocket_info/2]). + +init(Req, RunOrHibernate) -> + {cowboy_websocket, Req, RunOrHibernate, + #{idle_timeout => infinity}}. + +websocket_handle(Frame={text, <<"idle_timeout_short">>}, State=run) -> + {[{set_options, #{idle_timeout => 500}}, Frame], State}; +websocket_handle(Frame={text, <<"idle_timeout_short">>}, State=hibernate) -> + {[{set_options, #{idle_timeout => 500}}, Frame], State, hibernate}. + +websocket_info(_Info, State) -> + {[], State}. -- cgit v1.2.3