(PECL sam >= 0.1.0)
SAMConnection::receive — Recibir un mensaje de una cola o de una suscripción.
target
La identidad de la cola, asunto o suscripción de la que se recibe el mensaje.
properties
Un array asociativo opcional de propiedades, que describen otros parámetros para controlar la operación de recepción.
Nombre de la propiedad | Valores posibles |
---|---|
SAM_CORRELID | Utilizado para solicitar la recepción de un mensaje, basado en el identificador de correlación del mensaje. |
SAM_MESSAGEID | Utilizado para solicitar la recepción de un mensaje, basado en el identificador del mensaje. |
SAM_WAIT | Tiempo límite en milisegundos para controlar el tiempo de espera de recepción del mensaje, antes de devolver un error si no hay ningún mensaje disponible en la cola o asunto. El valor por defecto es 0, que significa esperar indefinidamente y debe ser usado con precaución puesto que la petición esperará hasta el tiempo límite de ejecución del script PHP si ningún mensaje está disponible. |
Este método devuelve un objeto SAMMessage o FALSE
en caso de error.
Ejemplo #1 Recepción de un mensaje de una cola
<?php
$msg = $conn->receive('queue://receive/test');
if (!$msg) {
// The receive failed!
echo "Receive failed ($conn->errno) $conn->error";
}
?>
Ejemplo #2 Recepción de un mensaje de una cola con opciones
En este ejemplo, la opción SAM_CORRELID se utiliza para especificar un identificador de correlación, que se utilizará para identificar el mensaje a recibir. También se especifica un tiempo límite de espera de 10 segundos.
<?php
$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));
?>
Ejemplo #3 Recepción de un mensaje de una suscripción
En este ejemplo se muestra cómo recibir un mensaje desde un identificador de suscripción.
<?php
$msg = $conn->receive($subscriptionName);
if (!$msg) {
// La recepción falló!
echo "Recepción fallida ($conn->errno) $conn->error";
}
?>
Observe que $subscriptionName es un identificador de suscripción devuelto desde una llamada anterior a una suscripción.