class PushPromiseFrame
The PUSH_PROMISE frame is used to notify the peer endpoint in advance of streams the sender intends to initiate. The PUSH_PROMISE frame includes the unsigned 31-bit identifier of the stream the endpoint plans to create along with a set of headers that provide additional context for the stream.
+---------------+ |Pad Length? (8)| +-+-------------+-----------------------------------------------+ |R| Promised Stream ID (31) | +-+-----------------------------+-------------------------------+ | Header Block Fragment () ... +---------------------------------------------------------------+ | Padding () ... +---------------------------------------------------------------+
Definitions
def unpack
Unpack the promised stream ID and header block fragment.
Signature
-
returns
Array
An array containing the promised stream ID and header block data.
Implementation
def unpack
data = super
stream_id = data.unpack1(FORMAT)
return stream_id, data.byteslice(4, data.bytesize - 4)
end
def pack(stream_id, data, *arguments, **options)
Pack the promised stream ID and header block data into the frame.
Signature
-
parameter
stream_id
Integer
The promised stream ID.
-
parameter
data
String
The header block data.
-
parameter
arguments
Array
Additional arguments.
-
parameter
options
Hash
Options for packing.
Implementation
def pack(stream_id, data, *arguments, **options)
super([stream_id].pack(FORMAT) + data, *arguments, **options)
end
def apply(connection)
Apply this PUSH_PROMISE frame to a connection for processing.
Signature
-
parameter
connection
Connection
The connection to apply the frame to.
Implementation
def apply(connection)
connection.receive_push_promise(self)
end