Construit un nouveau ZMQSocket

# ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Construit un nouveau ZMQSocket

### Description

public function ZMQSocket::__construct(
ZMQContext `$context`,
int `$type`,
string `$persistent_id` = `null`,
callable `$on_new_socket` = `null`
)

Construit un objet ZMQSocket. Le paramètre `persistent_id` peut être utilisé pour allouer un socket persistant. Un socket persistant doit être alloué depuis un contexte persistant, 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éée.

### 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 persistant pendant plusieurs requêtes. Si `context` n'est pas persistant, le socket passera automatiquement en mode non-persistant.

`on_new_socket`

  Fonction de rappel, qui sera exécutée lorsqu'une nouvelle structure de socket sera créée. Cette fonction ne sera pas appelée si la connexion persistante est ré-appelée.

  function callback(ZMQSocket `$socket`, string `$persistent_id` = `null`)

### Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

### Exemples

Exemple #1 Exemple avec ZMQSocket()

Utilisation de la fonction de rappel sur le socket lié/connecté

    <?php

    /*
      Le socket est persistant, 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";
    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open