class ActionChannels::Client
Attributes
connect[RW]
is_connected[RW]
message_sender[R]
url[R]
Public Class Methods
new(url, options = {})
click to toggle source
# File lib/action_channels/client.rb, line 18 def initialize(url, options = {}) @url = url self.is_connected = false @message_sender = options.fetch :message_sender, MessageSenders::WebSocket.new end
send_message(url, message, options = {})
click to toggle source
# File lib/action_channels/client.rb, line 6 def send_message(url, message, options = {}) client = new(url, options) client.start client.send_message(message) client.stop true end
Public Instance Methods
connected?()
click to toggle source
# File lib/action_channels/client.rb, line 55 def connected? is_connected end
send_message(message)
click to toggle source
# File lib/action_channels/client.rb, line 47 def send_message(message) return false unless connected? message_sender.do_send(connect, message) true end
start(waits_at = 20)
click to toggle source
# File lib/action_channels/client.rb, line 24 def start(waits_at = 20) return true if connected? do_connect Timeout::timeout(waits_at, Errors::NotConnected) do until connected? do sleep 1 end end true end
stop()
click to toggle source
# File lib/action_channels/client.rb, line 38 def stop if connected? connect.close connect = nil end true end
Private Instance Methods
do_connect()
click to toggle source
# File lib/action_channels/client.rb, line 63 def do_connect client = self ::NIO::WebSocket.connect(url) do |websocket| on_open = lambda do |_| client.send 'connect=', websocket client.send 'is_connected=', true end websocket.on :open, on_open end end