0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

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.
This commit is contained in:
Loïc Hoguin 2016-08-12 19:27:23 +02:00
parent b63b6ef865
commit d1b65a67cf
7 changed files with 161 additions and 169 deletions

View file

@ -3,26 +3,26 @@
-module(ws_echo_timer).
-export([init/2]).
-export([websocket_init/2]).
-export([websocket_handle/3]).
-export([websocket_info/3]).
-export([websocket_init/1]).
-export([websocket_handle/2]).
-export([websocket_info/2]).
init(Req, _) ->
{cowboy_websocket, Req, undefined}.
websocket_init(Req, State) ->
websocket_init(State) ->
erlang:start_timer(1000, self(), <<"websocket_init">>),
{ok, Req, State}.
{ok, State}.
websocket_handle({text, Data}, Req, State) ->
{reply, {text, Data}, Req, State};
websocket_handle({binary, Data}, Req, State) ->
{reply, {binary, Data}, Req, State};
websocket_handle(_Frame, Req, State) ->
{ok, Req, 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}, Req, State) ->
websocket_info({timeout, _Ref, Msg}, State) ->
erlang:start_timer(1000, self(), <<"websocket_handle">>),
{reply, {text, Msg}, Req, State};
websocket_info(_Info, Req, State) ->
{ok, Req, State}.
{reply, {text, Msg}, State};
websocket_info(_Info, State) ->
{ok, State}.