From 293cf33702c8cad471989c1e08ce05323baadaf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 19 Jul 2011 12:12:25 +0200 Subject: 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. --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index f9fb6ec..5933481 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,8 @@ Websocket would look like this: -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({tcp, http}, Req, Opts) -> {upgrade, protocol, cowboy_http_websocket}. @@ -194,11 +195,14 @@ websocket_init(TransportName, Req, _Opts) -> erlang:start_timer(1000, self(), <<"Hello!">>), {ok, Req, undefined_state}. -websocket_handle({timeout, _Ref, Msg}, Req, State) -> +websocket_handle(Msg, Req, State) -> + {reply, << "That's what she said! ", Msg/binary >>, Req, State}. + +websocket_info({timeout, _Ref, Msg}, Req, State) -> erlang:start_timer(1000, self(), <<"How' you doin'?">>), {reply, Msg, Req, State}; -websocket_handle({websocket, Msg}, Req, State) -> - {reply, << "That's what she said! ", Msg/binary >>, Req, State}. +websocket_info(_Info, Req, State) -> + {ok, Req, State}. websocket_terminate(_Reason, _Req, _State) -> ok. -- cgit v1.2.3