Packages
mist
0.11.0
6.0.3
6.0.2
6.0.1
6.0.0
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
5.0.0-rc1
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.0.0
1.2.0
1.1.0
1.0.0
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.17.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
a misty Gleam web server
Current section
Files
Jump to
Current section
Files
src/mist@websocket.erl
-module(mist@websocket).
-compile([no_auto_import, nowarn_unused_vars]).
-export([send/2, echo_handler/2, with_handler/1, on_init/2, on_close/2]).
-spec send(
gleam@erlang@process:subject(glisten@handler:handler_message()),
mist@internal@websocket:message()
) -> nil.
send(Sender, Message) ->
_pipe@2 = case Message of
{text_message, Data} ->
_pipe = Data,
_pipe@1 = gleam@bit_string:from_string(_pipe),
mist@internal@websocket:to_text_frame(_pipe@1);
{binary_message, Data@1} ->
mist@internal@websocket:to_binary_frame(Data@1)
end,
_pipe@3 = {send_message, _pipe@2},
gleam@erlang@process:send(Sender, _pipe@3),
nil.
-spec echo_handler(
mist@internal@websocket:message(),
gleam@erlang@process:subject(glisten@handler:handler_message())
) -> {ok, nil} | {error, nil}.
echo_handler(Message, Sender) ->
_ = send(Sender, Message),
{ok, nil}.
-spec with_handler(
fun((mist@internal@websocket:message(), gleam@erlang@process:subject(glisten@handler:handler_message())) -> {ok,
nil} |
{error, nil})
) -> mist@internal@websocket:websocket_handler().
with_handler(Func) ->
{websocket_handler, none, none, Func}.
-spec on_init(
mist@internal@websocket:websocket_handler(),
fun((gleam@erlang@process:subject(glisten@handler:handler_message())) -> nil)
) -> mist@internal@websocket:websocket_handler().
on_init(Handler, Func) ->
erlang:setelement(3, Handler, {some, Func}).
-spec on_close(
mist@internal@websocket:websocket_handler(),
fun((gleam@erlang@process:subject(glisten@handler:handler_message())) -> nil)
) -> mist@internal@websocket:websocket_handler().
on_close(Handler, Func) ->
erlang:setelement(2, Handler, {some, Func}).