mirror of
https://github.com/guilhermewerner/erlang-ws
synced 2025-06-16 19:34:20 +00:00
30 lines
693 B
Erlang
30 lines
693 B
Erlang
-module(ws_h).
|
|
|
|
-export([init/2]).
|
|
-export([websocket_init/1]).
|
|
-export([websocket_handle/3]).
|
|
-export([websocket_info/3]).
|
|
-export([websocket_terminate/3]).
|
|
|
|
init(Req, Opts) ->
|
|
{cowboy_websocket, Req, Opts}.
|
|
|
|
websocket_init(Req) ->
|
|
chat_room:enter(self()),
|
|
{ok, Req}.
|
|
|
|
websocket_handle({text, Msg}, Req, State) ->
|
|
chat_room:send_message(self(), Msg),
|
|
{ok, Req, State};
|
|
websocket_handle(_Data, Req, State) ->
|
|
{ok, Req, State}.
|
|
|
|
websocket_info({send_message, _ServerPid, Msg}, Req, State) ->
|
|
{reply, {text, Msg}, Req, State};
|
|
websocket_info(_Info, Req, State) ->
|
|
{ok, Req, State}.
|
|
|
|
websocket_terminate(_Reason, _Req, _State) ->
|
|
chat_room:leave(self()),
|
|
ok.
|