module MaZMQ::Proxy::Backend
Public Class Methods
new()
click to toggle source
# File lib/ma-zmq/proxy/backend.rb, line 4 def initialize @sockets = [] @timeout = nil # TODO individual timeouts for different sockets end
Public Instance Methods
connect(protocol, address, port)
click to toggle source
# File lib/ma-zmq/proxy/backend.rb, line 10 def connect(protocol, address, port) # validate as in SocketHandler request = MaZMQ::Request.new request.connect(protocol, address, port) if EM.reactor_running? request.timeout(@timeout) if @on_read_lambda.is_a? Proc request.on_read { |msg| @on_read_lambda.call(msg) } end if @on_timeout_lambda.is_a? Proc request.on_timeout { @on_timeout_lambda.call } end end #request.identity = "lb-#{@@id}" #@@id += 1 @sockets << request @sockets.size - 1 end
disconnect(index)
click to toggle source
def reconnect(index) end
# File lib/ma-zmq/proxy/backend.rb, line 37 def disconnect(index) socket = @sockets.delete_at(index) socket.close end
on_read(&block)
click to toggle source
# File lib/ma-zmq/proxy/backend.rb, line 59 def on_read(&block) return false if not EM.reactor_running? @on_read_lambda = block @sockets.each do |socket| socket.on_read { |msg| @on_read_lambda.call(msg) } end end
on_timeout(&block)
click to toggle source
# File lib/ma-zmq/proxy/backend.rb, line 49 def on_timeout(&block) return false if not EM.reactor_running? @on_timeout_lambda = block @sockets.each do |socket| socket.on_timeout { @on_timeout_lambda.call } end end
timeout(secs)
click to toggle source
# File lib/ma-zmq/proxy/backend.rb, line 42 def timeout(secs) @timeout = secs @sockets.each do |s| s.timeout @timeout end end