class Async::HTTP::Protocol::HTTP2::Server
def accept_stream(stream_id)
def accept_stream(stream_id) super do Request::Stream.create(self, stream_id) end end
def close(error = nil)
def close(error = nil) super # Stop the request loop: @requests.enqueue nil @requests = nil end
def each
def each # It's possible the connection has died before we get here... @requests&.async do |task, request| @count += 1 begin response = yield(request) rescue # We need to close the stream if the user code blows up while generating a response: request.stream.send_reset_stream(::Protocol::HTTP2::INTERNAL_ERROR) raise else request.send_response(response) end end end
def initialize(stream)
def initialize(stream) # Used by some generic methods in Connetion: @stream = stream framer = ::Protocol::HTTP2::Framer.new(stream) super(framer) @requests = Async::Queue.new end