22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/ruby_mailman/zmq_client.rb', line 22
def self.run(channel, listener, message_builder = RubyMailman::Subscription::Message)
context = ZMQ::Context.new
connection = context.socket(ZMQ::SUB)
connection.connect(ZMQConfiguration.server)
connection.setsockopt(ZMQ::SUBSCRIBE, channel)
Thread.new do
loop do
received_channel = ''
connection.recv_string(received_channel)
message = []
connection.recv_strings(message)
listener.call(received_channel, message_builder.new(received_channel, message))
end
end
end
|