aboutsummaryrefslogtreecommitdiffstats
path: root/test/websocket_handler.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2011-07-19 12:12:25 +0200
committerLoïc Hoguin <[email protected]>2011-07-19 12:20:16 +0200
commit293cf33702c8cad471989c1e08ce05323baadaf7 (patch)
tree737b0fdf40b69b5a5b47a8241ee3be9a455df85c /test/websocket_handler.erl
parentd363f914107d156f52ad73bf6bc3afcf0b1db701 (diff)
downloadcowboy-293cf33702c8cad471989c1e08ce05323baadaf7.tar.gz
cowboy-293cf33702c8cad471989c1e08ce05323baadaf7.tar.bz2
cowboy-293cf33702c8cad471989c1e08ce05323baadaf7.zip
Separate message and packet handling for websockets
Improves the readability of websocket handler code by having two functions: websocket_handle/3 handles the packets received from the socket, removing the tuple construct that was otherwise needed, so only websocket_handle(Data, Req, State) is needed now; websocket_info/3 handles the messages that the websocket handler process received, as websocket_info(Info, Req, State). Both functions return values are handled identically by Cowboy so nothing changes on that end.
Diffstat (limited to 'test/websocket_handler.erl')
-rw-r--r--test/websocket_handler.erl12
1 files changed, 8 insertions, 4 deletions
diff --git a/test/websocket_handler.erl b/test/websocket_handler.erl
index 8e6915b..d06bfee 100644
--- a/test/websocket_handler.erl
+++ b/test/websocket_handler.erl
@@ -4,7 +4,8 @@
-behaviour(cowboy_http_handler).
-behaviour(cowboy_http_websocket_handler).
-export([init/3, handle/2, terminate/2]).
--export([websocket_init/3, websocket_handle/3, websocket_terminate/3]).
+-export([websocket_init/3, websocket_handle/3,
+ websocket_info/3, websocket_terminate/3]).
init(_Any, _Req, _Opts) ->
{upgrade, protocol, cowboy_http_websocket}.
@@ -19,11 +20,14 @@ websocket_init(_TransportName, Req, _Opts) ->
erlang:start_timer(1000, self(), <<"websocket_init">>),
{ok, Req, undefined}.
-websocket_handle({timeout, _Ref, Msg}, Req, State) ->
+websocket_handle(Data, Req, State) ->
+ {reply, Data, Req, State}.
+
+websocket_info({timeout, _Ref, Msg}, Req, State) ->
erlang:start_timer(1000, self(), <<"websocket_handle">>),
{reply, Msg, Req, State};
-websocket_handle({websocket, Data}, Req, State) ->
- {reply, Data, Req, State}.
+websocket_info(_Info, Req, State) ->
+ {ok, Req, State}.
websocket_terminate(_Reason, _Req, _State) ->
ok.