# File lib/websocket/driver/server.rb, line 7 def initialize(socket, options = {}) super @http = HTTP::Request.new @delegate = nil end
# File lib/websocket/driver/server.rb, line 13 def env @http.complete? ? @http.env : nil end
# File lib/websocket/driver/server.rb, line 43 def parse(chunk) return @delegate.parse(chunk) if @delegate @http.parse(chunk) return fail_request('Invalid HTTP request') if @http.error? return unless @http.complete? @delegate = Driver.rack(self, @options) open EVENTS.each do |event| @delegate.on(event) { |e| emit(event, e) } end emit(:connect, ConnectEvent.new) end
# File lib/websocket/driver/server.rb, line 17 def url return nil unless e = env url = "ws://#{e['HTTP_HOST']}" url << e['PATH_INFO'] url << "?#{e['QUERY_STRING']}" unless e['QUERY_STRING'] == '' url end
# File lib/websocket/driver/server.rb, line 60 def write(buffer) @socket.write(buffer) end