(PECL stomp >= 0.1.0)
Stomp::ack -- stomp_ack — Acknowledges consumption of a message
Objektorientierter Stil (method):
Prozeduraler Stil:
Acknowledges consumption of a message from a subscription using client acknowledgment.
link
Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.
msg
The message/messageId to be acknowledged.
headers
Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z. B. receipt).
Beispiel #1 Objektorientierter Stil
<?php
$queue = '/queue/foo';
$msg = 'bar';
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}
$stomp->send($queue, $msg);
$stomp->subscribe($queue);
$frame = $stomp->readFrame();
if ($frame->body === $msg) {
$stomp->ack($frame);
}
$stomp->unsubscribe($queue);
unset($stomp);
?>
Beispiel #2 Prozeduraler Stil
<?php
$queue = '/queue/foo';
$msg = 'bar';
$link = stomp_connect('ssl://localhost:61612');
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}
stomp_begin($link, 't1');
stomp_send($link, $queue, $msg, array('transaction' => 't1'));
stomp_commit($link, 't1');
stomp_subscribe($link, $queue);
$frame = stomp_read_frame($link);
if ($frame['body'] === $msg) {
stomp_ack($link, $frame['headers']['message-id']);
}
stomp_unsubscribe($link, $queue);
stomp_close($link);
?>
Hinweis:
Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.
Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies führt dazu, dass Methoden solange nichts zurückgeben, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout überschritten wurde.