module Async::WebSocket::Adapters::Rack

Public Class Methods

open(env, **options, &block) click to toggle source
# File lib/async/websocket/adapters/rack.rb, line 35
def self.open(env, **options, &block)
        if request = env['async.http.request']
                env = nil
                
                if response = HTTP.open(request, **options, &block)
                        headers = response.headers
                        
                        if protocol = response.protocol
                                headers = Protocol::HTTP::Headers::Merged.new(headers, [
                                        ['rack.protocol', protocol]
                                ])
                        end
                        
                        return [response.status, headers.to_h, response.body]
                end
        end
end
websocket?(env) click to toggle source
# File lib/async/websocket/adapters/rack.rb, line 31
def self.websocket?(env)
        request = env['async.http.request'] and Array(request.protocol).include?(PROTOCOL)
end