lib/faye/websocket/client.rb in faye-websocket-0.1.2 vs lib/faye/websocket/client.rb in faye-websocket-0.2.0
- old
+ new
@@ -1,17 +1,18 @@
module Faye
class WebSocket
class Client
include API
- attr_reader :uri
+ attr_reader :protocol, :uri
- def initialize(url)
- @parser = Protocol8Parser.new(self, :masking => true)
+ def initialize(url, protocols = nil)
+ @parser = HybiParser.new(self, :masking => true, :protocols => protocols)
@url = url
@uri = URI.parse(url)
+ @protocol = ''
@ready_state = CONNECTING
@buffered_amount = 0
port = @uri.port || (@uri.scheme == 'wss' ? 443 : 80)
@@ -37,19 +38,20 @@
when CONNECTING then
@message += @handshake.parse(data)
return unless @handshake.complete?
if @handshake.valid?
+ @protocol = @handshake.protocol || ''
@ready_state = OPEN
event = Event.new('open')
event.init_event('open', false, false)
dispatch_event(event)
receive_data(@message)
else
@ready_state = CLOSED
- event = Event.new('error')
- event.init_event('error', false, false)
+ event = Event.new('close', :code => 1006, :reason => '')
+ event.init_event('close', false, false)
dispatch_event(event)
end
when OPEN, CLOSING then
@parser.parse(data)