Class: Nodectl::Stream::EventsSession

Inherits:
Object
  • Object
show all
Defined in:
lib/nodectl/stream/events_session.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(websocket, handshake) ⇒ EventsSession

Returns a new instance of EventsSession.



7
8
9
10
11
12
# File 'lib/nodectl/stream/events_session.rb', line 7

def initialize(websocket, handshake)
  @websocket = websocket
  @handshake = handshake

  self.class[self.class.next_id] = self
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



5
6
7
# File 'lib/nodectl/stream/events_session.rb', line 5

def file
  @file
end

#websocketObject (readonly)

Returns the value of attribute websocket.



4
5
6
# File 'lib/nodectl/stream/events_session.rb', line 4

def websocket
  @websocket
end

Class Method Details

.publish(resource, id, event_name, payload = {}) ⇒ Object



35
36
37
# File 'lib/nodectl/stream/events_session.rb', line 35

def publish(resource, id, event_name, payload = {})
  all.each { |session| session.publish(resource, id, event_name, payload) }
end

Instance Method Details

#closeObject



25
26
27
28
# File 'lib/nodectl/stream/events_session.rb', line 25

def close
  self.class.delete(self)
  @websocket.close unless @websocket.closed?
end

#onclose(&block) ⇒ Object



30
31
32
# File 'lib/nodectl/stream/events_session.rb', line 30

def onclose(&block)
  @websocket.onclose(&block)
end

#publish(resource, id, event_name, payload = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/nodectl/stream/events_session.rb', line 14

def publish(resource, id, event_name, payload = {})
  message = MultiJson.dump({resource:   resource,
                            id:         id,
                            event_name: event_name,
                            payload:    payload})

  @websocket.send(message)

  Nodectl.logger.debug("events_session: sent 'message'")
end