1
我正在嘗試編寫一個node.js客戶端(訂戶模塊)來使用rabbitmq(AMQP)的消息。 我想在rabbitmq中實現主題(exchangeName)。rabbitmq的node.js訂閱者客戶端(實現主題(ExcahangeName))
我正在嘗試爲此任務使用(easy-amqp)或postwait。
我已經在java中編寫了發佈者方法,並且想要在javascript(node.js)中編寫訂閱者方法。
我的java程序工作正常我能夠發送消息給rabbitmq。
我想我已經搞亂了用戶方法。當我運行訂閱者方法時,它不會給我任何錯誤,也不會將任何消息打印到控制檯。
我的Java方法是在JS(node.js中)有點象
//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 + "'");
//訂戶方法 //使用(postwait-節點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);
});
});
});
這也不能給我想要的結果。