Class: Pakyow::Processes::Proxy::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/pakyow/processes/proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(port:, host:, forwarded:) ⇒ Server

Returns a new instance of Server.



40
41
42
43
44
45
46
47
48
# File 'lib/pakyow/processes/proxy.rb', line 40

def initialize(port:, host:, forwarded:)
  @port, @host, @forwarded = port, host, forwarded
  @destination = "#{@host}:#{@port}"
  @client = Async::HTTP::Client.new(
    Async::HTTP::Endpoint.parse(
      File.join("http://#{@destination}")
    )
  )
end

Instance Method Details

#call(request, total_waits = 0) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/pakyow/processes/proxy.rb', line 50

def call(request, total_waits = 0)
  @client.call(request)
rescue
  if total_waits == 30
    Async::HTTP::Protocol::Response.new(
      nil, 404, [], Async::HTTP::Body::Buffered.wrap(
        StringIO.new("app did not respond")
      )
    )
  else
    Async::Task.current.sleep 0.5
    call(request, total_waits + 1)
  end
end