Rechercher une fonction PHP

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::pollSonde les éléments

Description

public ZMQPoll::poll ( array &$readable , array &$writable [, int $timeout = -1 ] ) : int

Sonde les éléments du poll courant. Les éléments accessibles en lecture et en écriture sont retournés respectivement dans les paramètres readable et writable. La méthode ZMQPoll::getLastErrors() peut être utilisée pour vérifier s'il y a des erreurs.

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

readable

Tableau contenant les ZMQSockets/flux PHP retournés, et accessible en lecture. Le tableau sera réinitialisé au début de l'opération.

writable

Tableau contenant les ZMQSockets/flux PHP retournés, et accessible en écriture. Le tableau sera réinitialisé au début de l'opération.

timeout

Délai maximal d'attente de l'opération. -1 signifie que le poll va attendre qu'au moins un élément ne soit actif. Notez que depuis la version 1.0.0, le délai maximal d'attente du poll est défini en millisecondes, plutôt en microsecondes.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec ZMQPoll()

Create a simple poll server

<?php

/* Crée un socket, ainsi qu'un masque de réponse de la requête */
$context = new ZMQContext();
$server  $context->getSocket(ZMQ::SOCKET_REP);

/* Lie le port 5555 sur 127.0.0.1 */
$server->bind("tcp://127.0.0.1:5555");

/* Crée un nouveau poll pour les messages entrants/sortants */
$poll = new ZMQPoll();

/* Ajout l'objet et écoute les entrées/sorties du poll */
$id $poll->add($serverZMQ::POLL_IN ZMQ::POLL_OUT);
echo 
"Added object with id " $id "\n";

/* Initialise les tableaux accueillant les éléments en lecture et écriture */
$readable = array();
$writable = array();

while (
true) {
   
/* Nombre d'événements à récupérer */
   
$events 0;

   try {
       
/* Bloc le Poll tant qu'il y a quelque chose à faire */
       
$events $poll->poll($readable$writable, -1);
       
$errors $poll->getLastErrors();

       if (
count($errors) > 0) {
           foreach (
$errors as $error) {
               echo 
"Error polling object " $error "\n";
           }
       }
   } catch (
ZMQPollException $e) {
       echo 
"poll failed: " $e->getMessage() . "\n";
   }

   if (
$events 0) {
       
/* Boucle sur les objets accessible en lecture et réceptionne les messages */
       
foreach ($readable as $r) {
           try {
               echo 
"Received message: " $r->recv() . "\n";
           } catch (
ZMQException $e) {
               echo 
"recv failed: " $e->getMessage() . "\n";
           }
       }

       
/* Boucle sur les objets accessible en écriture et retourne les messages */
       
foreach ($writable as $w) {
           try {
               
$w->send("Got it!");
           } catch (
ZMQException $e) {
               echo 
"send failed: " $e->getMessage() . "\n";
           }
       }
   }
}
?>

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Retourne un entier représentant la quantité d'éléments ayant une activité. Lance une exception ZMQPollException en cas d'erreur.

Rechercher une fonction PHP

Version en cache

22/11/2024 05:47:01 Cette version de la page est en cache (à la date du 22/11/2024 05:47:01) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-zmqpoll.poll.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut