diff options
author | Loïc Hoguin <[email protected]> | 2011-07-19 12:12:25 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2011-07-19 12:20:16 +0200 |
commit | 293cf33702c8cad471989c1e08ce05323baadaf7 (patch) | |
tree | 737b0fdf40b69b5a5b47a8241ee3be9a455df85c /test/websocket_handler.erl | |
parent | d363f914107d156f52ad73bf6bc3afcf0b1db701 (diff) | |
download | cowboy-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.erl | 12 |
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. |