Class: CZTop::Socket::ROUTER

Inherits:
CZTop::Socket show all
Defined in:
lib/cztop/socket/types.rb

Overview

Router socket for the ZeroMQ Request-Reply Pattern.

Constant Summary

Constants inherited from CZTop::Socket

TypeNames

Instance Attribute Summary

Attributes inherited from CZTop::Socket

#last_tcp_port

Attributes included from HasFFIDelegate

#ffi_delegate

Instance Method Summary collapse

Methods inherited from CZTop::Socket

#CURVE_client!, #CURVE_server!, #bind, #close, #connect, #disconnect, #inspect, #last_endpoint, new_by_type, #unbind

Methods included from HasFFIDelegate::ClassMethods

#ffi_delegate, #from_ffi_delegate

Methods included from PolymorphicZsockMethods

#set_unbounded, #signal, #wait

Methods included from CZTop::SendReceiveMethods

#<<, #receive

Methods included from ZsockOptions

#fd, #options, #readable?, #writable?

Methods included from HasFFIDelegate

#attach_ffi_delegate, #from_ffi_delegate, #raise_zmq_err, raise_zmq_err, #to_ptr

Constructor Details

#initialize(endpoints = nil) ⇒ ROUTER

Returns a new instance of ROUTER.

Parameters:

  • endpoints (String) (defaults to: nil)

    endpoints to bind to


101
102
103
# File 'lib/cztop/socket/types.rb', line 101

def initialize(endpoints = nil)
  attach_ffi_delegate(Zsock.new_router(endpoints))
end

Instance Method Details

#send_to(receiver, message) ⇒ Object

Note:

Do NOT use the message afterwards. It'll have been modified and destroyed.

Send a message to a specific receiver. This is a shorthand for when you send a message to a specific receiver with no hops in between.

Parameters:

  • receiver (String)

    receiving peer's socket identity

  • message (Message)

    the message to send


111
112
113
114
115
116
# File 'lib/cztop/socket/types.rb', line 111

def send_to(receiver, message)
  message = Message.coerce(message)
  message.prepend ""       # separator frame
  message.prepend receiver # receiver envelope
  self << message
end