PHP Doku:: Acknowledges consumption of a message - stomp.ack.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteStomp ClientThe Stomp classStomp::ack -- stomp_ack

Ein Service von Reinhard Neidl - Webprogrammierung.

The Stomp class

<<Stomp::abort -- stomp_abort

Stomp::begin -- stomp_begin>>

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ackAcknowledges consumption of a message

Beschreibung

Object oriented style (method):

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

Procedural style:

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

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

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

msg

The message/messageId to be acknowledged.

headers

Assoziatites Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Anmerkungen

Hinweis:

Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

Beispiel #1 Object oriented style

<?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);

?>

Beispiel #2 Procedural style

<?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);

?>


Keine BenutzerBeiträge.
- Beiträge aktualisieren...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)