Sha256: e0c51581050b60a7f0fdefe0b5db2168f2453dc952f8415b67c4c3932d91f694
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
module WebSocket module Handshake class Server < Base def initialize(args = {}) super @secure = !!args[:secure] end def <<(data) @data << data if parse_data set_version end end def should_respond? true end private def set_version @version = @headers['sec-websocket-version'].to_i if @headers['sec-websocket-version'] @version ||= @headers['sec-websocket-draft'].to_i if @headers['sec-websocket-draft'] @version ||= 76 if @leftovers != "" @version ||= 75 include_version end def include_version case @version when 75 then extend Handler::Server75 when 76, 0..3 then extend Handler::Server76 when 4..13 then extend Handler::Server04 else set_error(:unknown_protocol_version) and return false end return true end PATH = /^(\w+) (\/[^\s]*) HTTP\/1\.1$/ def parse_first_line(line) line_parts = line.match(PATH) set_error(:invalid_header) and return unless line_parts method = line_parts[1].strip set_error(:get_request_required) and return unless method == "GET" resource_name = line_parts[2].strip @path, @query = resource_name.split('?', 2) return true end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
websocket-1.0.1 | lib/websocket/handshake/server.rb |