Class: EventdClient
- Inherits:
-
EventdObject
- Object
- EventdObject
- EventdClient
- Defined in:
- lib/eventd/eventd_client.rb
Instance Attribute Summary collapse
-
#socket ⇒ Object
em-websocket socket object.
Attributes inherited from EventdObject
Instance Method Summary collapse
- #broadcast(channel, data = nil) ⇒ Object
- #emit(channel, data = nil, local = false) ⇒ Object
-
#initialize(socket, server) ⇒ EventdClient
constructor
A new instance of EventdClient.
- #setup_socket ⇒ Object
Methods inherited from EventdObject
Constructor Details
#initialize(socket, server) ⇒ EventdClient
Returns a new instance of EventdClient.
21 22 23 24 25 26 |
# File 'lib/eventd/eventd_client.rb', line 21 def initialize(socket, server) super() @socket = socket @server = server setup_socket unless @socket == nil end |
Instance Attribute Details
#socket ⇒ Object
em-websocket socket object
19 20 21 |
# File 'lib/eventd/eventd_client.rb', line 19 def socket @socket end |
Instance Method Details
#broadcast(channel, data = nil) ⇒ Object
62 63 64 |
# File 'lib/eventd/eventd_client.rb', line 62 def broadcast(channel, data = nil) @server.clients.each do |client| client.emit channel, data end end |
#emit(channel, data = nil, local = false) ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/eventd/eventd_client.rb', line 53 def emit(channel, data = nil, local = false) super(channel, data) if not local emission = { 'channel' => channel, 'priority' => 'normal', 'data' => data } @socket.send emission.to_json end end |
#setup_socket ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/eventd/eventd_client.rb', line 28 def setup_socket @socket.onopen do |handshake| self.emit('connect', handshake, true) end @socket.onclose do self.emit('disconnect', nil, true) end @socket. do || begin emission = JSON.parse if emission['broadcast'] self.broadcast emission['channel'], emission['data'] end self.emit emission['channel'], emission['data'] self.emit('message', , true) rescue Exception self.emit('message', , true) end end end |