WebSockex.Conn (WebSockex v0.4.3) View Source
Handles establishing and controlling the TCP connection.
Dispatches to the correct module for the underlying connection. (:gen_tcp
or :ssl
)
Is woefully inadequite for verifying proper peers in SSL connections.
Link to this section Summary
Types
Options used when establishing a tcp or ssl connection.
Functions
Builds the request to be sent along the newly opened socket.
Closes the socket and returns the Conn map without the socket.
Set the socket's controlling process.
Waits for the request response, decodes the packet, and returns the response headers.
Returns a new WebSockex.Conn
struct from a uri and options.
Opens a socket to a uri and returns a conn struct.
Parses a url string for a valid URI
Sets the socket to active.
Sends data using the conn_mod
module.
Link to this section Types
Specs
certification() :: :public_key.der_encoded()
Specs
connection_option() :: {:extra_headers, [header()]} | {:cacerts, [certification()]} | {:insecure, boolean()} | {:socket_connect_timeout, non_neg_integer()} | {:socket_recv_timeout, non_neg_integer()} | {:ssl_options, [:ssl.tls_client_option()]}
Options used when establishing a tcp or ssl connection.
:extra_headers
- defines other headers to be send in the opening request.:insecure
- Determines whether to verify the peer in a SSL connection. SSL peer verification is currenctly broken and only works in certain cases in which the:cacerts
are also provided. Sorry. Defaults totrue
.:cacerts
- The CA certifications for use in an secure connection when the:insecure
option isfalse
(has no effect when:insecure is true
). These certifications need a list of decoded binaries. See the Erlang:public_key
module for more information.:socket_connect_timeout
- Timeout in ms for creating a TCP connection, default 6000 ms.:socket_recv_timeout
- Timeout in ms for receiving a HTTP response header from socket, default 5000 ms.:ssl_options
- extra options for an SSL connection
Specs
Specs
socket() :: :gen_tcp.socket() | :ssl.sslsocket()
Specs
t() :: %WebSockex.Conn{ cacerts: term(), conn_mod: :gen_tcp | :ssl, extra_headers: [header()], host: String.t(), insecure: term(), path: String.t(), port: non_neg_integer(), query: String.t() | nil, resp_headers: [header()], socket: socket() | nil, socket_connect_timeout: non_neg_integer(), socket_recv_timeout: non_neg_integer(), ssl_options: term(), transport: transport() }
Specs
transport() :: :tcp | :ssl
Link to this section Functions
Specs
Builds the request to be sent along the newly opened socket.
The key parameter is part of the websocket handshake process.
Specs
close_socket(t()) :: %WebSockex.Conn{ cacerts: term(), conn_mod: term(), extra_headers: term(), host: term(), insecure: term(), path: term(), port: term(), query: term(), resp_headers: term(), socket: nil, socket_connect_timeout: term(), socket_recv_timeout: term(), ssl_options: term(), transport: term() }
Closes the socket and returns the Conn map without the socket.
When the :socket
field is nil
in the struct, the function just returns
the struct as is.
Specs
Set the socket's controlling process.
Specs
Waits for the request response, decodes the packet, and returns the response headers.
Sends any access information in the buffer back to the process as a message to be processed.
Specs
new(url :: String.t() | URI.t(), [connection_option()]) :: t() | {:error, %WebSockex.URLError{__exception__: term(), url: term()}}
Returns a new WebSockex.Conn
struct from a uri and options.
Specs
Opens a socket to a uri and returns a conn struct.
Specs
parse_url(String.t()) :: {:ok, URI.t()} | {:error, %WebSockex.URLError{__exception__: term(), url: term()}}
Parses a url string for a valid URI
Specs
Sets the socket to active.
Specs
Sends data using the conn_mod
module.