Stomp::abort
Stomp::begin
Stomp
PHP Manual

# Stomp::ack

# stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Acknowledges 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);
?>`

Stomp::abort
Stomp::begin
Stomp
PHP Manual