Module: SubZero::Socket::Server

Included in:
SubZero::Socket
Defined in:
lib/sub_zero/socket/server.rb

Instance Method Summary collapse

Instance Method Details

#down!Object



22
23
24
# File 'lib/sub_zero/socket/server.rb', line 22

def down!
  send_server_verb 'DOWN'
end

#pingObject



26
27
28
# File 'lib/sub_zero/socket/server.rb', line 26

def ping
  send_server_verb 'PING'
end

#poll(socket) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/sub_zero/socket/server.rb', line 38

def poll socket
  ZMQ::Poller.new.tap do |p|
    p.register socket, ZMQ::POLLIN
    p.poll 1

    p.readables.each do |s|
      s.recv_strings source = []

      begin
        message = Message.parse(source)
      rescue => e
        error e, 'error parsing message'
      end

      yield message if message
    end
  end
end

#run(&handle_message) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/sub_zero/socket/server.rb', line 5

def run &handle_message
  context do |c|
    socket c do |s|
      poll s do |m|
        handle_message[m]
      end
    end
  end
rescue => e
  error e, 'failed while running server, going to retry'
  retry
end

#send_server_verb(verb) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/sub_zero/socket/server.rb', line 30

def send_server_verb verb
  context do |c|
    socket c do |s|
      send_message s, Message.new(type: 'SRV', verb: verb)
    end
  end
end

#up!Object



18
19
20
# File 'lib/sub_zero/socket/server.rb', line 18

def up!
  send_server_verb 'UP'
end