class EventMachine::WebSocketClient
Attributes
url[RW]
Public Class Methods
connect(uri)
click to toggle source
# File lib/em-websocket-client.rb, line 11 def self.connect uri p_uri = URI.parse(uri) conn = EM.connect(p_uri.host, p_uri.port || 80, self) do |c| c.url = uri end end
Public Instance Methods
connected(&cb;)
click to toggle source
# File lib/em-websocket-client.rb, line 30 def connected &cb; @connect = cb; end
connection_completed()
click to toggle source
# File lib/em-websocket-client.rb, line 23 def connection_completed @connect.yield if @connect @hs = ::WebSocket::Handshake::Client.new(:url => @url) send_data @hs.to_s end
disconnect(&cb;)
click to toggle source
# File lib/em-websocket-client.rb, line 31 def disconnect &cb; @disconnect = cb; end
post_init()
click to toggle source
# File lib/em-websocket-client.rb, line 18 def post_init @handshaked = false @frame = ::WebSocket::Frame::Incoming::Client.new end
receive_data(data)
click to toggle source
# File lib/em-websocket-client.rb, line 33 def receive_data data if !@handshaked @hs << data if @hs.finished? @handshaked = true succeed end else @frame << data while msg = @frame.next @stream.call(msg) if @stream end end end
send_msg(s, args={})
click to toggle source
# File lib/em-websocket-client.rb, line 48 def send_msg(s, args={}) type = args[:type] || :text frame = ::WebSocket::Frame::Outgoing::Client.new(:data => s, :type => type, :version => @hs.version) send_data frame.to_s end
stream(&cb;)
click to toggle source
# File lib/em-websocket-client.rb, line 29 def stream &cb; @stream = cb; end
unbind()
click to toggle source
Calls superclass method
# File lib/em-websocket-client.rb, line 54 def unbind super @disconnect.call if @disconnect end