ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__constructConstruit un nouveau ZMQSocket

Description

ZMQSocket::__construct ( ZMQContext $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éé.

Liste de paramètres

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.

Exemples

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);

Valeurs de retour

Lance une exception ZMQSocketException en cas d'erreur.