Class: Async::HTTP::Protocol::HTTP2::Client
- Inherits:
-
Protocol::HTTP2::Client
- Object
- Protocol::HTTP2::Client
- Async::HTTP::Protocol::HTTP2::Client
- Includes:
- Connection
- Defined in:
- lib/async/http/protocol/http2/client.rb
Instance Attribute Summary
Attributes included from Connection
Instance Method Summary collapse
-
#call(request) ⇒ Object
Used by the client to send requests to the remote server.
- #create_response ⇒ Object
-
#initialize(stream) ⇒ Client
constructor
A new instance of Client.
- #read_response(response) ⇒ Object
- #write_request(response, request) ⇒ Object
Methods included from Connection
#as_json, #close, #concurrency, #http1?, #http2?, #peer, #read_in_background, #reusable?, #start_connection, #synchronize, #to_json, #to_s, #version, #viable?
Constructor Details
#initialize(stream) ⇒ Client
Returns a new instance of Client.
19 20 21 22 23 24 25 |
# File 'lib/async/http/protocol/http2/client.rb', line 19 def initialize(stream) @stream = stream framer = ::Protocol::HTTP2::Framer.new(@stream) super(framer) end |
Instance Method Details
#call(request) ⇒ Object
Used by the client to send requests to the remote server.
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/async/http/protocol/http2/client.rb', line 32 def call(request) raise ::Protocol::HTTP2::Error, "Connection closed!" if self.closed? @count += 1 response = create_response write_request(response, request) read_response(response) return response end |
#create_response ⇒ Object
27 28 29 |
# File 'lib/async/http/protocol/http2/client.rb', line 27 def create_response Response::Stream.create(self, self.next_stream_id).response end |
#read_response(response) ⇒ Object
48 49 50 |
# File 'lib/async/http/protocol/http2/client.rb', line 48 def read_response(response) response.wait end |
#write_request(response, request) ⇒ Object
44 45 46 |
# File 'lib/async/http/protocol/http2/client.rb', line 44 def write_request(response, request) response.send_request(request) end |