(PECL zmq >= 0.5.0)
ZMQSocket::__construct — Construir un nuevo ZMQSocket
$context
,$type
,$persistent_id
= null
,$on_new_socket
= null
Construye un objeto ZMQSocket. Se puede utilizar el parámetro persistent_id
para asignar un socket
persistente. Un socket persistente tiene que ser asignado desde un contexto persistente, por lo que permanece conectado durante múltiples peticiones.
Se puede emplear el parámetro persistent_id
para recordar el mismo socket durante múltiples peticiones.
on_new_socket
es llamado solamente cuando se crea un nueva estructura de socket subyacente.
context
Un objeto ZMQContext.
type
El tipo de socket. Véanse las constantes ZMQ::SOCKET_*
.
persistent_id
Si se especifica persistent_id
, el socket será persistente durante múltiples peticiones.
Si context
no es persistente, el socket recurrirá al modo no persistente.
on_new_socket
Función de retrollamada que es ejecutada cuando se crea una nueva estrucutra de socket. Esta función no es invocada si la conexión persistente subyacente es reutilizada.
Lanza una ZMQSocketException en caso de error.
Ejemplo #1 Un ejemplo de ZMQSocket()
Utilizar una callback the bind/connect socket
<?php
/*
El socket es persistente, por lo que esta función es llamada solamente en la
primera petición del script.
*/
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");
}
}
/* Asignar un nuevo contexto */
$context = new ZMQContext();
/* Crear un nuevo socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "Mensaje recibido: {$message}\n";
?>