close_code() = 1000..1003 | 1006..1011 | 3000..4999
deflate_opts() = #{level => zlib:zlevel(), mem_level => zlib:zmemlevel(), strategy => zlib:zstrategy(), server_context_takeover => takeover | no_takeover, client_context_takeover => takeover | no_takeover, server_max_window_bits => 8..15, client_max_window_bits => 8..15}
extensions() = map()
frag_state() = undefined | {fin | nofin, text | binary, rsv()}
frame() = close | ping | pong | {text | binary | close | ping | pong, iodata()} | {close, close_code(), iodata()} | {fragment, fin | nofin, text | binary | continuation, iodata()}
frame_type() = fragment | text | binary | close | ping | pong
mask_key() = undefined | 0..4294967295
rsv() = <<_:3>>
utf8_state() = 0..8 | undefined
| encode_key/1 | Encode the key into the accept value for the Websocket handshake response. |
| frame/2 | Construct an unmasked Websocket frame. |
| key/0 | Generate a key for the Websocket handshake request. |
| make_frame/4 | Return a frame tuple from parsed state and data. |
| masked_frame/2 | Construct a masked Websocket frame. |
| negotiate_permessage_deflate/3 | Negotiate the permessage-deflate extension. |
| negotiate_x_webkit_deflate_frame/3 | Negotiate the x-webkit-deflate-frame extension. |
| parse_header/3 | Parse and validate the Websocket frame header. |
| parse_payload/9 | Parse and validate the frame's payload. |
| validate_permessage_deflate/3 | Validate the negotiated permessage-deflate extension. |
encode_key(Key::binary()) -> binary()
Encode the key into the accept value for the Websocket handshake response.
frame(X1::frame(), Extensions::extensions()) -> iodata()
Construct an unmasked Websocket frame.
key() -> binary()
Generate a key for the Websocket handshake request.
make_frame(X1::frame_type(), Payload::binary(), CloseCode::close_code(), X4::frag_state()) -> frame()
Return a frame tuple from parsed state and data.
masked_frame(X1::frame(), Extensions::extensions()) -> iodata()
Construct a masked Websocket frame.
We use a mask key of 0 if there is no payload for close, ping and pong frames.negotiate_permessage_deflate(Params::[binary() | {binary(), binary()}], Exts, Opts::deflate_opts()) -> ignore | {ok, iolist(), Exts}
Exts = extensions()
Negotiate the permessage-deflate extension.
negotiate_x_webkit_deflate_frame(Params::[binary() | {binary(), binary()}], Exts, Opts::deflate_opts()) -> ignore | {ok, binary(), Exts}
Exts = extensions()
Negotiate the x-webkit-deflate-frame extension.
The implementation is very basic and none of the parameters are currently supported.parse_header(Data::binary(), Extensions::extensions(), FragState::frag_state()) -> error | more | {frame_type(), frag_state(), rsv(), non_neg_integer(), mask_key(), binary()}
Parse and validate the Websocket frame header.
This function also updates the fragmentation state according to information found in the frame's header.parse_payload(Data::binary(), MaskKey::mask_key(), Utf8State::utf8_state(), ParsedLen::non_neg_integer(), Type::frame_type(), Len::non_neg_integer(), FragState::frag_state(), Exts::extensions(), X9::rsv()) -> {ok, binary(), utf8_state(), binary()} | {ok, close_code(), binary(), utf8_state(), binary()} | {more, binary(), utf8_state()} | {more, close_code(), binary(), utf8_state()} | {error, badframe | badencoding | badsize}
Parse and validate the frame's payload.
Validation is only required for text and close frames which feature a UTF-8 payload.validate_permessage_deflate(Params, Extensions, Opts) -> any()
Validate the negotiated permessage-deflate extension.
Generated by EDoc