class Async::WebSocket::Request

Attributes

authority[RW]
body[RW]
headers[RW]
path[RW]
scheme[RW]

Public Class Methods

new(scheme = nil, authority = nil, path = nil, headers = nil, **options, &block) click to toggle source
# File lib/async/websocket/request.rb, line 33
def initialize(scheme = nil, authority = nil, path = nil, headers = nil, **options, &block)
        @scheme = scheme
        @authority = authority
        @path = path
        @headers = headers
        
        @options = options
        
        @body = nil
end
websocket?(request) click to toggle source
# File lib/async/websocket/request.rb, line 29
def self.websocket?(request)
        Array(request.protocol).include?(PROTOCOL)
end

Public Instance Methods

call(connection) click to toggle source

Send the request to the given connection.

# File lib/async/websocket/request.rb, line 52
def call(connection)
        if connection.http1?
                return UpgradeRequest.new(self, **@options).call(connection)
        elsif connection.http2?
                return ConnectRequest.new(self, **@options).call(connection)
        end
        
        raise HTTP::Error, "Unsupported HTTP version: #{connection.version}!"
end
idempotent?() click to toggle source
# File lib/async/websocket/request.rb, line 62
def idempotent?
        true
end
to_s() click to toggle source
# File lib/async/websocket/request.rb, line 66
def to_s
        "\#<#{self.class} #{@scheme}://#{@authority}: #{@path}>"
end