Packages
nova
0.11.0
0.15.1
0.14.3
0.14.1
0.13.7
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.24
0.9.23
0.9.22
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.11
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.4.4
0.4.3
0.4.2
0.4.1
0.2.2
0.1.0
0.0.1
0.0.0
Nova is a web application framework
Current section
Files
Jump to
Current section
Files
src/nova_websocket.erl
-module(nova_websocket).
-type call_result() :: {ok, State :: map()} |
{ok, State :: map(), hibernate} |
{reply, OutFrame :: cow_ws:frame() | [OutFrame :: cow_ws:frame()],
State :: map()} |
{reply, OutFrame :: cow_ws:frame() | [OutFrame :: cow_ws:frame()],
State :: map(), hibernate} |
{stop, State :: map()}.
-export_type([call_result/0]).
-type in_frame() :: ping | pong | {text | binary | ping | pong, binary()}.
-export_type([in_frame/0]).
-type reason() :: normal | stop | timeout | remote |
{remote, cow_ws:close_code(), binary()} |
{error, badencoding | badframe | closed | atom()} |
{crash, error | exit | throw, any()}.
-export_type([reason/0]).
-callback init(State :: map()) -> {ok, State0 :: map()} | any().
-callback websocket_init(State :: map()) -> Result :: call_result().
-optional_callbacks([websocket_init/1]).
-callback websocket_handle(Frame :: in_frame(), State :: map()) -> call_result().
-callback websocket_info(Info :: any(), State :: map()) -> call_result().
-callback terminate(Reason :: reason(), PartialReq :: map(), State :: map()) -> ok.
-optional_callbacks([terminate/3]).