class Faye::WebSocket::Client

Attributes

headers[R]
status[R]

Public Class Methods

new(url, protocols = nil, options = {}) click to toggle source
Calls superclass method Faye::WebSocket::API::new
# File lib/faye/websocket/client.rb, line 9
def initialize(url, protocols = nil, options = {})
  @url    = url
  @uri    = URI.parse(url)
  @driver = ::WebSocket::Driver.client(self, :max_length => options[:max_length], :protocols => protocols)

  [:open, :error].each do |event|
    @driver.on(event) do
      @headers = @driver.headers
      @status  = @driver.status
    end
  end

  super(options)

  port = @uri.port || (@uri.scheme == 'wss' ? 443 : 80)
  EventMachine.connect(@uri.host, port, Connection) do |conn|
    @stream = conn
    conn.parent = self
  end
rescue => error
  event = Event.new('error', :message => "Network error: #{url}: #{error.message}")
  event.init_event('error', false, false)
  dispatch_event(event)
  finalize(error.message, 1006)
end

Private Instance Methods

on_connect() click to toggle source
# File lib/faye/websocket/client.rb, line 37
def on_connect
  @stream.start_tls(:ssl_version => :TLSv1) if @uri.scheme == 'wss'
  @driver.start
end