SAMConnection::peekAll
SAMConnection::remove
Fonctions SAM
PHP Manual

# SAMConnection::receive

(PECL sam >= 0.1.0)

SAMConnection::receive — Reçoit un message depuis une file d'attente ou d'une souscription

### Description

SAMMessage SAMConnection::receive ( string `$target` [, array `$properties` ] )

### Liste de paramètres

`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.

### Valeurs de retour

Cette méthode retourne un objet SAMMessage ou `FALSE` si une erreur survient.

### Exemples

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.

### Voir aussi

- SAMConnection::send

SAMConnection::peekAll
SAMConnection::remove
Fonctions SAM
PHP Manual