View Source WebSockAdapter (WebSockAdapter v0.5.1)
Defines adapters to allow common Web Servers to serve applications via the WebSock
API.
Also provides a consistent upgrade facility to upgrade Plug.Conn
requests to WebSock
connections for supported servers.
Link to this section Summary
Types
The type of a supported connection option
Link to this section Types
@type connection_opt() :: {:compress, boolean()} | {:timeout, timeout()} | {:max_frame_size, non_neg_integer()} | {:fullsweep_after, non_neg_integer()}
The type of a supported connection option
Link to this section Functions
@spec upgrade(Plug.Conn.t(), WebSock.impl(), WebSock.state(), [connection_opt()]) :: Plug.Conn.t()
Upgrades the provided Plug.Conn
connection request to a WebSock
connection using the
provided WebSock
compliant module as a handler.
This function returns the passed conn
set to an :upgraded
state.
The provided state
value will be used as the argument for WebSock.init/1
once the WebSocket
connection has been successfully negotiated.
The opts
keyword list argument allows a number of options to be set on the WebSocket
connection. Not all options may be supported by the underlying HTTP server. Possible values are
as follows:
timeout
: The number of milliseconds to wait after no client data is received before closing the connection. Defaults to60_000
compress
: Whether or not to accept negotiation of a compression extension with the client. Defaults tofalse
max_frame_size
: The maximum frame size to accept, in octets. If a frame size larger than this is received the connection will be closed. Defaults to:infinity
fullsweep_after
: The maximum number of garbage collections before forcing a fullsweep of the WebSocket connection process. Setting this option requires OTP 24 or newer