Elli WebSocket Request Adapter.
Copyright (c) 2013, Maas-Maarten Zeeman; 2018, elli-lib team
Authors: Maas-Maarten Zeeman (mmzeeman@xs4all.nl
).
req() = #req_adapter{req = elli:req(), resp_compress = boolean(), resp_headers = elli:headers(), sent_upgrade_reply = boolean(), websocket_version = undefined | integer(), websocket_compress = boolean()}
ensure_response/2 | Mimics cowboy_req:ensure_response/2. |
get/2 | Mimics cowboy_req:get/2. |
header/2 | Mimics cowboy_req:header/2. |
init/2 | Initialize the request helper. |
maybe_reply/2 | Mimics cowboy_req:maybe_reply/2. |
messages/1 | Atoms used to identify messages in {active, once | true} mode. |
parse_header/2 | Mimics cowboy_req:parse_header/3 {ok, ParsedHeaders, Req}. |
set_meta/3 | Mimics cowboy_req:set_meta/3. |
upgrade_reply/3 | |
websocket_handler_callback/5 | Calls websocket_info en websocket_handle callbacks. |
websocket_handler_handle_event/5 | Report an event... |
websocket_handler_init/3 | Call the websocket_init callback of the websocket handler. |
ensure_response(ReqAdapter::req(), X2::400) -> ok
Mimics cowboy_req:ensure_response/2
get(L::atom() | list(), ReqAdapter::req()) -> any() | list()
Mimics cowboy_req:get/2
header(X1, Req_adapter) -> any()
Mimics cowboy_req:header/2
init(Req::elli:req(), RespCompress::boolean()) -> req()
Initialize the request helper
maybe_reply(X1::400, ReqAdapter::req()) -> ok
Mimics cowboy_req:maybe_reply/2
messages(RA::req()) -> {tcp, tcp_closed, tcp_error} | {ssl, ssl_closed, ssl_error}
Atoms used to identify messages in {active, once | true} mode.
parse_header(X1, Req_adapter) -> any()
Mimics cowboy_req:parse_header/3 {ok, ParsedHeaders, Req}
set_meta(X1, Version, ReqAdapter) -> any()
Mimics cowboy_req:set_meta/3
upgrade_reply(X1::101, Headers::elli:headers(), Req_adapter::req()) -> {ok, req()}
websocket_handler_callback(Req, Handler, Callback, Message, HandlerState) -> Result
Req = req()
Handler = module()
Callback = websocket_info | websocket_handle
Message = any()
HandlerState = any()
Result = {ok, req(), any()} | {ok, req(), any(), hibernate} | {reply, elli_ws_protocol:frame() | [elli_ws_protocol:frame()], req(), any()} | {reply, elli_ws_protocol:frame() | [elli_ws_protocol:frame()], req(), any(), hibernate} | {shutdown, req(), any()}
Calls websocket_info en websocket_handle callbacks.
websocket_handler_handle_event(Req_adapter::req(), Handler::module(), Name::atom(), EventArgs::list(), HandlerOpts::any()) -> ok
Report an event...
websocket_handler_init(Req_adapter::req(), Handler::module(), HandlerState::any()) -> {shutdown, req()} | {ok, req(), any()} | {ok, req(), any(), hibernate} | {ok, req(), any(), Timeout::non_neg_integer()} | {ok, req(), any(), Timeout::non_neg_integer(), hibernate}
Call the websocket_init callback of the websocket handler.
calls websocket_init(Req, HandlerOpts) -> {ok, Headers, HandlerState} We can upgrade, headers are added to the upgrade response. {ok, Headers, hibernate, HandlerState} We can upgrade, but this process will hibernate, headers are added to the upgrade response {ok, Headers, Timeout, HandlerState} We can upgrade, we will timout, headers are added to the upgrade respose. {ok, Headers, hibernate, Timeout, HandlerState} We can upgrade, set a timeout and hibernate. Headers are added to the response. {shutdown, Headers} We can't upgrade, a bad request response will be sent to the client.