2016-07-25 2 views
0

ActiveMQ를 사용하여 메시지 큐를 저장하고 있습니다.
PECL Stomp 확장 프로그램을 사용하여 연결하고 있습니다. 대기열에 성공적으로 게시하고 successfuly에서 읽습니다.
메시지를 사용한 후에 메시지를 삭제하도록 큐를 구성하는 방법은 무엇입니까? 내 리스너에서
, 나는 당신이 그 (것)이 큐에서 "삭제"얻을 수있는 메시지의 소비를 인정해야큐에서 한 번만 메시지를 읽는 방법

$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

관련 문제