0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00
cowboy/test/ws_SUITE_data/ws_echo_timer.erl
Loïc Hoguin d1b65a67cf Remove Req from the Websocket interface
After the switch to Websocket, we are no longer in a request/response
scenario, therefore a lot of the cowboy_req functions do not apply
anymore.

Any data required from the request will need to be taken from Req
in init/2 and saved in the handler's state.
2016-08-12 19:27:23 +02:00

28 lines
726 B
Erlang

%% Feel free to use, reuse and abuse the code in this file.
-module(ws_echo_timer).
-export([init/2]).
-export([websocket_init/1]).
-export([websocket_handle/2]).
-export([websocket_info/2]).
init(Req, _) ->
{cowboy_websocket, Req, undefined}.
websocket_init(State) ->
erlang:start_timer(1000, self(), <<"websocket_init">>),
{ok, State}.
websocket_handle({text, Data}, State) ->
{reply, {text, Data}, State};
websocket_handle({binary, Data}, State) ->
{reply, {binary, Data}, State};
websocket_handle(_Frame, State) ->
{ok, State}.
websocket_info({timeout, _Ref, Msg}, State) ->
erlang:start_timer(1000, self(), <<"websocket_handle">>),
{reply, {text, Msg}, State};
websocket_info(_Info, State) ->
{ok, State}.