diff --git a/example/upgrade_server.rb b/example/upgrade_server.rb index 75f40c8..35b0576 100644 --- a/example/upgrade_server.rb +++ b/example/upgrade_server.rb @@ -1,3 +1,5 @@ +# frozen_string_literals: true + require_relative 'helper' require 'http_parser' require 'base64' @@ -82,6 +84,15 @@ def on_message_complete end end +def request_header_hash received_hash = {} + Hash.new do |hash, key| + k = key.to_s.upcase + k.gsub! '_', '-' + _, value = received_hash.find {|header_key,v| header_key.upcase == k} + hash[key] = value if value + end +end + loop do sock = server.accept puts 'New TCP connection!' @@ -99,8 +110,11 @@ def on_message_complete end conn.on(:stream) do |stream| + log = Logger.new(stream.id) - req, buffer = {}, '' + request_headers = {} + req = request_header_hash(request_headers) + buffer = '' stream.on(:active) { log.info 'client opened new stream' } stream.on(:close) do @@ -108,7 +122,7 @@ def on_message_complete end stream.on(:headers) do |h| - req = Hash[*h.flatten] + request_headers.merge! Hash[*h.flatten] log.info "request headers: #{h}" end