Class: M2R::ConnectionFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/m2r/connection_factory.rb

Overview

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

Defined Under Namespace

Classes: Options

Instance Method Summary collapse

Constructor Details

#initialize(options, context = M2R.zmq_context) ⇒ ConnectionFactory

Returns a new instance of ConnectionFactory.

Parameters:

  • options (Options)

    ZMQ connections options

  • context (ZMQ::Context) (defaults to: M2R.zmq_context)

    Context for creating new ZMQ sockets



23
24
25
26
# File 'lib/m2r/connection_factory.rb', line 23

def initialize(options, context = M2R.zmq_context)
  @options = options
  @context = context
end

Instance Method Details

#connectionConnection

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

Returns:



32
33
34
35
36
37
38
39
40
41
# File 'lib/m2r/connection_factory.rb', line 32

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