©
This document uses PHP Chinese website manual Release
(PECL zmq >= 0.5.0)
ZMQSocket::__construct — Construct a new ZMQSocket
$context
, int $type
[, string $persistent_id
= null
[, callback $on_new_socket
= null
]] )
Constructs a ZMQSocket object. persistent_id
parameter can be used to allocated a persistent
socket. A persistent socket has to be allocated from a persistent context and it stays connected over multiple requests.
The persistent_id
parameter can be used to recall the same socket over multiple requests. The
on_new_socket
is called only when a new underlying socket structure is created.
context
ZMQContext object.
type
The socket type. See ZMQ::SOCKET_*
constants.
persistent_id
If persistent_id
is specified the socket will be persisted over multiple requests.
If context
is not persistent the socket falls back to non-persistent mode.
on_new_socket
Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used.
Example #1 A ZMQSocket() example
Using callback the bind/connect socket
<?php
function on_new_socket_cb ( ZMQSocket $socket , $persistent_id = null )
{
if ( $persistent_id === 'server' ) {
$socket -> bind ( "tcp://localhost:12122" );
} else {
$socket -> connect ( "tcp://localhost:12122" );
}
}
$context = new ZMQContext ();
$socket = $context -> getSocket ( ZMQ :: SOCKET_REP , 'server' , 'on_new_socket_cb' );
$message = $socket -> recv ();
echo "Received message: { $message } \n" ;
?>
The callback signature
Note:
function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);
Throws ZMQSocketException on error.