Class: BroadcastClient

Inherits:
Object
  • Object
show all
Defined in:
lib/ignition/engine/broadcast_client.rb

Constant Summary collapse

MULTICAST_ADDR =
"224.6.8.11"

Instance Method Summary collapse

Constructor Details

#initialize(handle, bind_address, bind_port) ⇒ BroadcastClient

BIND_ADDR = “0.0.0.0” PORT = 6811



11
12
13
14
15
16
17
18
19
20
# File 'lib/ignition/engine/broadcast_client.rb', line 11

def initialize(handle,bind_address,bind_port)
  @handle    = handle
  @client_id = SecureRandom.hex(5)
  @listeners = []

  @bind_addr = bind_address
  @port = bind_port

  @stopped = false
end

Instance Method Details

#add_message_listener(listener) ⇒ Object



22
23
24
25
26
# File 'lib/ignition/engine/broadcast_client.rb', line 22

def add_message_listener(listener)
  listen unless listening?
  @listeners << listener
  # puts "add_message_listener 1"
end

#stop!Object



39
40
41
42
# File 'lib/ignition/engine/broadcast_client.rb', line 39

def stop!
  # puts "Stopping BroadcastClient"
  @stopped = true
end

#transmit(content) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/ignition/engine/broadcast_client.rb', line 28

def transmit(content)
  message = BroadcastMessage.new(
    "client_id" => @client_id,
    "handle"    => @handle,
    "content"   => content
  )

  socket.send(message.to_json, 0, MULTICAST_ADDR, @port)
  message
end