Behaviours: gen_fsm.
This module defines the websocket_client behaviour.
Required callback functions: init/1, onconnect/2, ondisconnect/2, websocket_handle/3, websocket_info/3, websocket_terminate/3.
Authors: Jeremy Ong, Michael Coles.
state_name() = atom()
| cast/2 | |
| code_change/4 | |
| connected/2 | |
| connected/3 | |
| disconnected/2 | |
| disconnected/3 | |
| handle_event/3 | |
| handle_info/3 | |
| handle_sync_event/4 | |
| handshaking/2 | |
| handshaking/3 | |
| init/1 | |
| send/2 | |
| start_link/3 | Start the websocket client. |
| start_link/4 | Start the websocket client. |
| start_link/5 | Start the websocket client see gen_fsm:start_link(FsmName, Module, Args, Options) FsmName = {local,Name} | {global,GlobalName} | {via,Module,ViaName} Name = atom() GlobalName = ViaName = term() Module = atom(). |
| terminate/3 |
cast(Client::pid(), Frame::websocket_req:frame()) -> ok
code_change(OldVsn::term(), StateName::state_name(), Context::#context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}, Extra::any()) -> {ok, state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}}
connected(X1, Context) -> any()
connected(Event, From, Context) -> any()
disconnected(Event, Context0) -> any()
disconnected(Event, From, Context0) -> any()
handle_event(Event::term(), State::state_name(), Context::#context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}) -> {next_state, state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}} | {stop, Reason::term(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}}
handle_info(Info::term(), KAState::state_name(), Context::#context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}) -> {next_state, state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}} | {stop, Reason::term(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}}
handle_sync_event(Event::term(), X2::{From::pid(), any()}, State::state_name(), Context::#context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}) -> {next_state, state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}} | {reply, Reply::term(), state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}} | {stop, Reason::term(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}} | {stop, Reason::term(), Reply::term(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}}
handshaking(Event, Context) -> any()
handshaking(Event, From, Context) -> any()
init(X1::[any()]) -> {ok, state_name(), #context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}}
send(Client, Frame) -> any()
start_link(URL::string(), Handler::module(), Args::list()) -> {ok, pid()} | {error, term()}
Start the websocket client
URL : Supported schema: (ws | wss) Handler: module() Args : arguments to pass to Handler:init/1start_link(URL, Handler, HandlerArgs, Opts) -> any()
Start the websocket client
Supported Opts: - {keepalive, integer()}: keepalive timeout in ms - {extra_headers, list({K, V})}: a kv-list of headers to send in the handshake (useful if you need to add an e.g. 'Origin' header on connection. - {ssl_verify, verify_none | verify_peer | {verify_fun, _}} : this is passed through to ssl:connect/2,3.start_link(FsmName, URL, Handler, HandlerArgs, Opts) -> any()
Start the websocket client see gen_fsm:start_link(FsmName, Module, Args, Options) FsmName = {local,Name} | {global,GlobalName} | {via,Module,ViaName} Name = atom() GlobalName = ViaName = term() Module = atom()
terminate(Reason::term(), StateName::state_name(), Context::#context{wsreq = websocket_req:req(), transport = #transport{}, headers = [{string(), string()}], target = {Proto::ws | wss, Host::string(), Port::non_neg_integer(), Path::string()}, handler = {module(), HState::term()}, buffer = binary(), reconnect = boolean(), reconnect_tref = undefined | reference(), ka_attempts = non_neg_integer()}) -> ok
Generated by EDoc