2016-07-25 9 views
0

ActiveMQを使用してメッセージのキューを格納しています。
私はそれに接続するためにPECL Stomp拡張を使用しています。 私はキューに正常にパブリッシュしており、成功して読み込み中です。
メッセージを消費した後にメッセージを削除するようにキューを設定するにはどうすればよいですか?私のリスナーで
は、私はあなたがそれらをキューから「削除」を取得するために、メッセージの消費を確認する必要がキューから一度だけメッセージを読み取る方法

$c = new Stomp($url); 
$c->subscribe('/queue/something'); 
echo $c->readFrame(); 
+0

あなたはおそらく、メッセージの消費を確認したいです。 http://php.net/manual/en/stomp.ack.php –

+0

は今削除されていませんか?詳細をご記入ください –

+0

メッセージは削除されていません。キューを切断して再接続するたびに、同じメッセージが何度も何度も繰り返されます。 –

答えて

1

を使用しています。 $stomp->ack($messageID)でそれを行うことができます。

領収書を明示的に確認しない場合は、$stomp->subscribeのヘッダーをackに設定して、autoに設定することができます。これにより、サーバーはメッセージを自動的に確認し、正しく配信されたものと見なします。

$stomp->subscribe('/queue/something', array('ack' => 'auto')); 

参考文献:
http://php.net/manual/en/stomp.ack.php
http://php.net/manual/en/stomp.subscribe.php
https://stomp.github.io/stomp-specification-1.1.html#SUBSCRIBE

関連する問題