class M2R::ConnectionFactory

{Connection} factory so that every thread can use it generate its own {Connection} for communication with Mongrel2.

@api public

Public Class Methods

new(options, context = M2R.zmq_context) click to toggle source

@param [Options] options ZMQ connections options @param [ZMQ::Context] context Context for creating new ZMQ sockets

# File lib/m2r/connection_factory.rb, line 22
def initialize(options, context = M2R.zmq_context)
  @options = options
  @context = context
end

Public Instance Methods

connection() click to toggle source

Builds new Connection which can be used to receive Mongrel2 requests and send responses.

@return [Connection]

# File lib/m2r/connection_factory.rb, line 31
def connection
  request_socket = @context.socket(ZMQ::PULL)
  request_socket.connect(@options.recv_addr)

  response_socket = @context.socket(ZMQ::PUB)
  response_socket.connect(@options.send_addr)
  response_socket.setsockopt(ZMQ::IDENTITY, @options.sender_id) if @options.sender_id

  Connection.new(request_socket, response_socket)
end