class Async::HTTP::Server
def handle_request(request, peer, address)
def handle_request(request, peer, address) [200, {}, []] end
def initialize(addresses, protocol_class = Protocol::HTTP1x)
def initialize(addresses, protocol_class = Protocol::HTTP1x) @addresses = addresses @protocol_class = protocol_class end
def run
def run Async::IO::Address.each(@addresses) do |address| # puts "Binding to #{address} on process #{Process.pid}" address.accept do |peer| stream = Async::IO::Stream.new(peer) protocol = @protocol_class.new(stream) # puts "Opening session on child pid #{Process.pid}" hijack = catch(:hijack) do protocol.receive_requests do |request| handle_request(request, peer, address) end end if hijack hijack.call end # puts "Closing session" end end end