class Grenache::WebsocketClient
Public Class Methods
new(uri, &cb)
click to toggle source
# File lib/grenache/websocket.rb, line 34 def initialize(uri, &cb) @uri = uri.sub("tcp://","ws://") @uri.prepend("ws://") unless @uri.start_with?("ws://") @callback = cb end
Public Instance Methods
connected?()
click to toggle source
# File lib/grenache/websocket.rb, line 45 def connected? @connected end
send(payload)
click to toggle source
# File lib/grenache/websocket.rb, line 40 def send payload ws_connect unless @connected @ws.send(payload) end
Private Instance Methods
disconnect()
click to toggle source
# File lib/grenache/websocket.rb, line 67 def disconnect @ws.close @ws = nil end
on_close(ev)
click to toggle source
# File lib/grenache/websocket.rb, line 72 def on_close(ev) @connected = false end
on_message(ev)
click to toggle source
# File lib/grenache/websocket.rb, line 61 def on_message(ev) msg = ServiceMessage.parse(ev.data) err = msg.err.kind_of?(Exception) ? msg.err.message : msg.err @callback.call(msg.err, msg.payload) if @callback end
on_open(ev)
click to toggle source
# File lib/grenache/websocket.rb, line 57 def on_open(ev) @connected = true end
ws_connect()
click to toggle source
# File lib/grenache/websocket.rb, line 50 def ws_connect @ws = Faye::WebSocket::Client.new(@uri) @ws.on(:open, method(:on_open)) @ws.on(:message, method(:on_message)) @ws.on(:close, method(:on_close)) end