1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
class ServerProxy < Rack::Proxy
HOST = 'localhost'
PORT = '4180'
class App
def initialize(app)
@app = app
end
def listen(port)
events = Puma::Events.new($stdout, $stderr)
binder = Puma::Binder.new(events)
binder.parse(["tcp://0.0.0.0:#{ PORT }"], self)
@server = Puma::Server.new(self, events)
@server.binder = binder
@thread = @server.run
rescue => e
end
def stop
@server.stop
@thread.join
end
def call(env)
@app.call(env)
end
def log(message)
end
end
def initialize(rack_app)
@app = App.new(rack_app)
@app.listen(PORT)
end
def stop
@app.stop
end
def rewrite_env(env)
env['HTTP_HOST'] = HOST
env['SERVER_PORT'] = PORT
env[Faye::RackAdapter::HTTP_X_NO_CONTENT_LENGTH] = '1'
env
end
end
|