Class: Protocol::HTTP2::PingFrame

Inherits:
Frame
  • Object
show all
Includes:
Acknowledgement
Defined in:
lib/protocol/http2/ping_frame.rb

Overview

The PING frame is a mechanism for measuring a minimal round-trip time from the sender, as well as determining whether an idle connection is still functional. PING frames can be sent from any endpoint.

--------------------------------------------------------------- | | | Opaque Data (64) | | | ---------------------------------------------------------------

Constant Summary collapse

TYPE =
0x6

Constants inherited from Frame

Frame::HEADER_FORMAT, Frame::LENGTH_HISHIFT, Frame::LENGTH_LOMASK, Frame::STREAM_ID_MASK, Frame::VALID_LENGTH, Frame::VALID_STREAM_ID

Instance Attribute Summary

Attributes inherited from Frame

#flags, #length, #payload, #stream_id, #type

Instance Method Summary collapse

Methods included from Acknowledgement

#acknowledgement?

Methods inherited from Frame

#<=>, #clear_flags, #flag_set?, #header, #initialize, #inspect, #pack, parse_header, #read, #read_header, #set_flags, #to_ary, #unpack, #valid_type?, #write, #write_header, #write_payload

Constructor Details

This class inherits a constructor from Protocol::HTTP2::Frame

Instance Method Details

#acknowledgeObject



63
64
65
66
67
68
69
# File 'lib/protocol/http2/ping_frame.rb', line 63

def acknowledge
	frame = super
	
	frame.pack self.unpack
	
	return frame
end

#apply(connection) ⇒ Object



59
60
61
# File 'lib/protocol/http2/ping_frame.rb', line 59

def apply(connection)
	connection.receive_ping(self)
end

#connection?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/protocol/http2/ping_frame.rb', line 55

def connection?
	true
end

#read_payload(stream) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/protocol/http2/ping_frame.rb', line 71

def read_payload(stream)
	super
	
	if @length != 8
		raise FrameSizeError, "Invalid frame length: #{@length} != 8!"
	end
end