1

私は、rabbitmq(AMQP) からのメッセージを消費する node.js クライアント (サブスクライバー モジュール) を作成しようとしています。rabbitmq でトピック (exchangeName) を実装しようとしています。

このタスクに (easy-amqp) または postwait を使用しようとしています。

パブリッシャー メソッドを Java で記述しましたが、サブスクライバー メソッドを javascript(node.js) で記述したいと考えています。

私の Java プログラムは正常に動作し、rabbitmq にメッセージを送信できます。

サブスクライバーメソッドを台無しにしたと思います。サブスクライバー メソッドを実行すると、エラーは発生せず、コンソールにもメッセージが出力されません。

私のJavaメソッドはやや似ています

//Publisher (written in java)

Connection connection = null;
Channel channel = null;
String routingKey =null;

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");

connection = factory.newConnection();
channel = connection.createChannel();

//publishing to a exchange_name topic

channel.exchangeDeclare(EXCHANGE_NAME, "topic");

//set the routing key

routingKey = "anonymous.info" ;

channel.basicPublish(EXCHANGE_NAME, routingKey, null, message.getBytes());
System.out.println("Sent '" + routingKey + "':'" + message + "'");

//js のサブスクライバー メソッド (node.js) //using (postwait- node-amqp )

var amqp = require('amqp');

var connection = amqp.createConnection({defaultExchangeName: "topic"});

// Wait for connection to become established.
   connection.on('ready', function () {

  connection.queue('anonymous.info', function(q){
      // Catch all messages
      q.bind('#');

      // Receive messages
      q.subscribe(function (message) {
        // Print messages to stdout
        console.log(message);
      });
  });
});

これによりエラーは発生しませんが、コンソールにメッセージが出力されません。


そこで、easy-amqp という別のライブラリに出会いました。私はそれを試してみました

// easy-amqp を使用する加入者。

var easyamqp = require('easy-amqp');

var connection = easyamqp.createConnection("amqp://localhost:5672");



// setting the exchange
connection.exchange('topic')

connection.on('ready', function () {

  connection.queue('anonymous.info', function(q){

      q.bind('#');

      // Receive messages
      q.subscribe(function (message) {
        // Print messages to stdout
        console.log(message);
      });
  });
});

これも私に望ましい結果を与えません。

4

1 に答える 1