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";
?>
add a note

User Contributed Notes

There are no user contributed notes for this page.