(PECL sam >= 0.1.0)
SAMConnection::receive — Reçoit un message depuis une file d'attente ou d'une souscription
target
L'identité de la file d'attente, du sujet ou de la souscription depuis lequel le message est reçu.
properties
Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération de réception :
Nom de la propriété | Valeurs possibles |
---|---|
SAM_CORRELID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant de corrélation du message. |
SAM_MESSAGEID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant du message. |
SAM_WAIT | Délai d'attente maximal en millisecondes permettant de contrôler le temps d'attente de réception du message avant de retourner une erreur si aucun message n'est disponible sur la file d'attente ou sur le sujet. La valeur par défaut est 0, ce qui signifie que le délai est infini et doit donc être utilisée avec précaution car la demande attendra jusqu'au temps limite d'exécution PHP si aucun message n'est disponible. |
Cette méthode retourne un objet SAMMessage ou FALSE
si une erreur survient.
Exemple #1 Réception d'un message depuis la file d'attente
<?php
$msg = $conn->receive('queue://receive/test');
if (!$msg) {
// La réception a échoué !
echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>
Exemple #2 Réception d'un message depuis la file d'attente avec des options
Dans cet exemple, l'option SAM_CORRELID est utilisé pour spécifier un identifiant de corrélation à utiliser pour identifier le message à recevoir ainsi qu'un délai d'attente maximal de 10 secondes.
<?php
$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));
?>
Exemple #3 Réception d'un message depuis une souscription
Dans cet exemple, nous montrons comment réceptionner un message depuis un identifiant de souscription.
<?php
$msg = $conn->receive($subscriptionName);
if (!$msg) {
// La réception a échoué !
echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>
Noter que $subscriptionName est un identifiant de souscription retourné lors d'un précédent appel à une souscription.