class GoawayFrame
The GOAWAY frame is used to initiate shutdown of a connection or to signal serious error conditions. GOAWAY allows an endpoint to gracefully stop accepting new streams while still finishing processing of previously established streams. This enables administrative actions, like server maintenance.
+-+-------------------------------------------------------------+ |R| Last-Stream-ID (31) | +-+-------------------------------------------------------------+ | Error Code (32) | +---------------------------------------------------------------+ | Additional Debug Data (*) | +---------------------------------------------------------------+
Definitions
def connection?
Check if this frame applies to the connection level.
Signature
-
returns
Boolean
Always returns true for GOAWAY frames.
Implementation
def connection?
true
end
def unpack
Unpack the GOAWAY frame payload.
Signature
-
returns
Array
Last stream ID, error code, and debug data.
Implementation
def unpack
data = super
last_stream_id, error_code = data.unpack(FORMAT)
return last_stream_id, error_code, data.slice(8, data.bytesize-8)
end
def pack(last_stream_id, error_code, data)
Pack GOAWAY frame data into payload.
Signature
-
parameter
last_stream_id
Integer
The last processed stream ID.
-
parameter
error_code
Integer
The error code for connection termination.
-
parameter
data
String
Additional debug data.
Implementation
def pack(last_stream_id, error_code, data)
super [last_stream_id, error_code].pack(FORMAT) + data
end
def apply(connection)
Apply this GOAWAY frame to a connection for processing.
Signature
-
parameter
connection
Connection
The connection to apply the frame to.
Implementation
def apply(connection)
connection.receive_goaway(self)
end