class Wideact::Client
Public Class Methods
new(name, args = { host: "localhost", port: 40444, server: nil })
click to toggle source
# File lib/wideact/client.rb, line 5 def initialize(name, args = { host: "localhost", port: 40444, server: nil }) @host = args[:host] @port = args[:port] if args[:server].nil? @client_socket = TCPSocket.new @host, @port else @client_socket = args[:server] end @listeners = [] @from_server = Thread.new { loop do while data = @client_socket.gets if data.start_with?("MESSAGE") parse(data) end end end } @from_server.run connect(name) end
Public Instance Methods
add_listener(&listener)
click to toggle source
# File lib/wideact/client.rb, line 49 def add_listener(&listener) @listeners.push(listener) end
close()
click to toggle source
# File lib/wideact/client.rb, line 53 def close @from_server.stop @client_socket.close end
connect(name)
click to toggle source
# File lib/wideact/client.rb, line 41 def connect(name) @client_socket.puts "CONNECT #{name}" end
message(receiver, message)
click to toggle source
# File lib/wideact/client.rb, line 45 def message(receiver, message) @client_socket.puts "MESSAGE #{receiver} #{message}" end
parse(data)
click to toggle source
# File lib/wideact/client.rb, line 31 def parse(data) message = data.split(" ", 3) return if message.length < 3 @listeners.each do |listener| listener.call(message[1], message[2]) end end