Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ackAcknowledges consumption of a message

Opis

Styl obiektowy (method):

public Stomp::ack ( mixed $msg [, array $headers ] ) : bool

Styl proceduralny:

stomp_ack ( resource $link , mixed $msg [, array $headers ] ) : bool

Acknowledges consumption of a message from a subscription using client acknowledgment.

Parametry

link

Tylko styl proceduralny: identyfikator połączenia stomp zwracany przez stomp_connect().

msg

The message/messageId to be acknowledged.

headers

Tablica wielowymiarowa zawierająca dodatkowe nagłówki (na przykład: receipt).

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

Notatki

Informacja:

Można określić nagłówek transakcji, wskazując, że potwierdzenie odbioru powinno być częścią nazwanej transakcji.

Wskazówka

Stomp jest z natury asynchroniczny. Komunikacja synchroniczna może być uzyskana przez dodanie nagłówka receipt (otrzymanie). Spowoduje to, że metody nie będą niczego zwracać, dopóki serwer nie potwierdzi otrzymania wiadomości lub dopóki nie zostanie osiągnięty limit czasowy odczytu.

Przykłady

Przykład #1 Styl obiektowy

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connection */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* send a message to the queue 'foo' */
$stomp->send($queue$msg);

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe($queue);

/* read a frame */
$frame $stomp->readFrame();

if (
$frame->body === $msg) {
    
/* acknowledge that the frame was received */
    
$stomp->ack($frame);
}

/* remove the subscription */
$stomp->unsubscribe($queue);

/* close connection */
unset($stomp);

?>

Przykład #2 Styl proceduralny

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connection */
$link stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link't1');

/* send a message to the queue 'foo' */
stomp_send($link$queue$msg, array('transaction' => 't1'));

/* commit a transaction */
stomp_commit($link't1');

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link$queue);

/* read a frame */
$frame stomp_read_frame($link);

if (
$frame['body'] === $msg) {
    
/* acknowledge that the frame was received */
    
stomp_ack($link$frame['headers']['message-id']);
}

/* remove the subscription */
stomp_unsubscribe($link$queue);

/* close connection */
stomp_close($link);

?>

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top