2016-06-21 13 views
0

私はこのチュートリアルに従って、WebブラウザでのRabbitMQとWeb-STOMPを使用しています: https://www.rabbitmq.com/web-stomp.htmRabbitMQの問題とWeb-STOMP

私が接続して、ブラウザでメッセージを取得するsucceded。私はクライアントに送信され、消費さ

しかし、

  1. メッセージがキューに残っていると(私は手動ACKと自動ACKをしました)デキューされていない、それはまだ存在しています。

  2. 私はキューにすべてのメッセージを取得していませんが、最後のものだけです.WebSocketが開いていて、サーバーがメッセージを送信したときに限り、最後のメッセージが表示されます古いもの。

サーバーコード:

private static final String EXCHANGE_NAME = "amq.topic"; 

public static void AddToQueue(String RoutingKey, String message) throws IOException, TimeoutException { 
     ConnectionFactory factory = new ConnectionFactory(); 
     factory.setHost("localhost"); 
     Connection connection = factory.newConnection(); 
     Channel channel = connection.createChannel(); 

    channel.exchangeDeclare(EXCHANGE_NAME, "topic"); 

     channel.basicPublish(EXCHANGE_NAME, RoutingKey, null, message.getBytes()); 

     channel.close(); 
     connection.close(); 
} 

クライアントコード:

var ws = new SockJS('http://' + window.location.hostname + ':15674/stomp'); 
$scope.client = Stomp.over(ws); 
$scope.client.heartbeat.outgoing = 0; 
$scope.client.heartbeat.incoming = 0; 
var on_connect = function(x) { 
     $scope.client.subscribe("/topic/status", function(d) { 
      console.log(d.body); 
}); 
}; 
var on_error = function() { 
    console.log('error'); 
}; 
$scope.client.connect('guest', 'guest', on_connect, on_error, '/'); 

感謝。

答えて

1

交換名は "amq.topic"にする必要があります

+0

この5か月後に返事を頂きました。非常にtotes。 –

関連する問題