(PECL zmq >= 0.5.0)
ZMQSocket::__construct — Construit un nouveau ZMQSocket
$context
, int $type
[, string $persistent_id
= null
[, callback $on_new_socket
= null
]] )
Construit un objet ZMQSocket. Le paramètre persistent_id
peut être utilisé pour allouer un socket persistent. Un socket
persistent doit être alloué depuis un contexte persistent,
et il restera connecté pendant plusieurs requêtes. Le paramètre
persistent_id
peut être utilisé
pour ré-appeler le même socket lors des prochaines requêtes.
on_new_socket
est appelé uniquement lorsqu'une
nouvelle structure sous-jacente de socket est créé.
context
Objet ZMQContext.
type
Le type de socket. Voir les constantes ZMQ::SOCKET_*
.
persistent_id
Si persistent_id
est spécifié, le socket sera
persistent pendant plusieurs requêtes. Si context
n'est pas persistent, le socket passera automatiquement en mode non-persistent.
on_new_socket
Function de rappel, qui sera exécuté lorsqu'une nouvelle structure de socket sera créée. Cette fonction ne sera pas appelée si la connexion persistente est ré-appelée.
Exemple #1 Exemple avec ZMQSocket()
Utilisation de la fonction de rappel sur le socket lié/connecté
<?php
/*
Le socket est persistent, aussi, cette fonction est appelée uniquement
lors de la première requête du 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");
}
}
/* Alloue un nouveau contexte */
$context = new ZMQContext();
/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "Received message: {$message}\n";
?>
La signature de la fonction de rappel
Note:
function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);
Lance une exception ZMQSocketException en cas d'erreur.