NAME¶
Message::Passing::ZeroMQ::Role::HasASocket - Role for instances which have a
ZeroMQ socket.
ATTRIBUTES¶
socket_bind¶
Bind a server to an address.
For example "
tcp://*:5222" to make a server listening on a port on all
of the host's addresses, or "
tcp://127.0.0.1:5222" to bind the
socket to a specific IP on the host.
connect¶
Connect to a server. For example "
tcp://127.0.0.1:5222".
This option is mutually exclusive with socket_bind, as sockets can connect in
one direction only.
socket_type¶
The connection direction can be either the same as, or the opposite of the
message flow direction.
The currently supported socket types are:
PUB
This socket publishes messages to zero or more subscribers.
All subscribers get a copy of each message.
SUB
The pair of PUB, receives broadcast messages.
PUSH
This socket type distributes messages in a round-robin fashion between
subscribers. Therefore N subscribers will see 1/N of the message flow.
PULL¶
The pair of PUSH, receives a proportion of messages distributed.
linger¶
Bool indicating the value of the ZMQ_LINGER options.
Defaults to 0 meaning sockets will not block on shutdown if a server is
unavailable (i.e. queued messages will be discarded).
socket_hwm
Set the High Water Mark for the socket. Depending on the socket type, messages
are likely to be discarded once this high water mark is exceeded (i.e. there
are more than this many messages buffered).
A value of 0 disables the high water mark, meaning that messages will be
buffered until RAM runs out.
socket_builder
A code reference returning a new ZeroMQ::Socket instance within a new
ZeroMQ::Context every time it is called.
If a value this attribute is provided, responsibility for building sockets is
solely the callback's responsibility. None of the other attributes usually
involved in creating sockets, such as "socket_type",
"linger", or "socket_hmw" will be taken into account
automatically.
If a socket builder callback needs to make use of the aforementioned attributes,
it will have to do so manually by looking at the object implementing
"Message::Passing::ZeroMQ::Role::HasASocket", which is going to be
passed to the callback as the first argument upon invocation.
The second and final argument passed to the callback with be a newly
ZeroMQ::Context that the new socket is expected to be created in.
METHODS¶
setsockopt¶
For wrapping by sub-classes to set options after the socket is created.
This module exists due to the wonderful people at Suretec Systems Ltd.
<
http://www.suretecsystems.com/> who sponsored its development for its
VoIP division called SureVoIP <
http://www.surevoip.co.uk/> for use with
the SureVoIP API -
<
http://www.surevoip.co.uk/support/wiki/api_documentation>
AUTHOR, COPYRIGHT AND LICENSE¶
See Message::Passing::ZeroMQ.