class Plum::UpgradeClientSession
Try upgrade to HTTP/2
Public Class Methods
new(socket, config)
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 4 def initialize(socket, config) prepare_session(socket, config) end
Public Instance Methods
close()
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 16 def close @session.close end
empty?()
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 12 def empty? @session.empty? end
request(headers, body, options, &headers_cb)
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 20 def request(headers, body, options, &headers_cb) @session.request(headers, body, options, &headers_cb) end
succ()
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 8 def succ @session.succ end
Private Instance Methods
prepare_session(socket, config)
click to toggle source
# File lib/plum/client/upgrade_client_session.rb, line 25 def prepare_session(socket, config) lcs = LegacyClientSession.new(socket, config) opt_res = lcs.request({ ":method" => "OPTIONS", ":path" => "*", "User-Agent" => config[:user_agent], "Connection" => "Upgrade, HTTP2-Settings", "Upgrade" => "h2c", "HTTP2-Settings" => "" }, nil, {}) lcs.succ until opt_res.finished? if opt_res.status == "101" lcs.close @session = ClientSession.new(socket, config) @session.plum.stream(1).set_state(:half_closed_local) else @session = lcs end end