ankh v0.3.1 Ankh.Connection
Genserver implementing HTTP/2 connection management
Ankh.Connection
establishes the underlying TLS connection and provides
connection and stream management, it also does frame (de)serialization and
reassembly as needed.
After starting the connection, received frames are sent back to the caller,
or the process specified in the receiver
startup option, as messages.
Separate messages are sent for HEADERS, PUSH_PROMISE and DATA frames.
Headers are always reassembled and sent back in one message to the receiver.
For data frames, the stream
startup otion toggles streaming mode:
If true
(streaming mode) a stream_data
msg is sent for each received DATA
frame, and it is the receiver responsibility to reassemble incoming data.
If false
(full mode), DATA frames are accumulated until a complete response
is received and then the complete data is sent to the receiver as data
msg.
See typespecs below for message types and formats.
Summary
Types
Ankh Connection process
Ankh DATA message (full mode)
Ankh HEADERS message
Startup options:
- receiver: pid of the process to send response messages to. Messages are shipped to the calling process if nil.
- stream: if true, stream received data frames back to the receiver, else reassemble and send complete responses.
- ssl_options: SSL connection options, for the Erlang
:ssl
module
Ankh PUSH_PROMISE message
Ankh DATA frame (streaming mode)
Types
Ankh Connection process
Ankh DATA message (full mode)
{:ankh, :data, stream_id, data}
Ankh HEADERS message
{:ankh, :headers, stream_id, headers}
Startup options:
- receiver: pid of the process to send response messages to. Messages are shipped to the calling process if nil.
- stream: if true, stream received data frames back to the receiver, else reassemble and send complete responses.
- ssl_options: SSL connection options, for the Erlang
:ssl
module
Ankh PUSH_PROMISE message
{:ankh, :headers, stream_id, promised_stream_id, headers}
Ankh DATA frame (streaming mode)
{:ankh, :stream_data, stream_id, data}
Functions
Closes the connection
Before closing the TLS connection a GOAWAY frame is sent to the peer.
Parameters:
- connection: connection process
Connects to a server via the specified URI
Parameters:
- connection: connection process
- uri: The server to connect to, scheme and authority are used
Sends a frame over the connection
Parameters:
- connection: connection process
- frame:
Ankh.Frame
structure
start_link([receiver: pid | nil, stream: boolean, ssl_options: Keyword.t], GenServer.option) :: GenServer.on_start
Start the connection process for the specified URI
.
Parameters:
- args: startup options
- options: GenServer startup options
update_settings(connection, Ankh.Frame.Settings.Payload.t) :: :ok
Update send settings