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_idInteger The last processed stream ID.
-
parameter
error_codeInteger The error code for connection termination.
-
parameter
dataString 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
connectionConnection The connection to apply the frame to.
Implementation
def apply(connection)
connection.receive_goaway(self)
end