Sha256: 174608f5b30c474a2fc12f4aca3e1f0011a9a5c9d4be3934e1c6d2e51096b04b
Contents?: true
Size: 963 Bytes
Versions: 1
Compression:
Stored size: 963 Bytes
Contents
require 'em-proxy' require 'http/parser' # gem install http_parser.rb require 'uuid' # gem install uuid # > ruby em-proxy-http.rb # > curl --proxy localhost:9889 www.google.com host = "0.0.0.0" port = 9889 puts "listening on #{host}:#{port}..." Proxy.start(:host => host, :port => port) do |conn| @p = Http::Parser.new @p.on_headers_complete = proc do |h| session = UUID.generate puts "New session: #{session} (#{h.inspect})" host, port = h['Host'].split(':') conn.server session, :host => host, :port => (port || 80) conn.relay_to_servers @buffer @buffer.clear end @buffer = '' conn.on_connect do |data,b| puts [:on_connect, data, b].inspect end conn.on_data do |data| @buffer << data @p << data data end conn.on_response do |backend, resp| puts [:on_response, backend, resp].inspect resp end conn.on_finish do |backend, name| puts [:on_finish, name].inspect end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
em-proxy-0.1.6 | examples/http_proxy.rb |