我有两个模块连接到rabbitmq。 模块A向模块B发送消息 模块B执行一些逻辑,并将响应发送回A 模块A继续工作。 模块A:
var connection = amqp.createConnection(rabbitserver);
connection.on('ready', function () {
connection.publish('queue1', rabbitserver.login + ":" + param);
connection.queue('queue2', {autoDelete: false}, function (queue) {
queue.subscribe(function (msg) {
console.log("response recieved");
connection.disconnect();
});
});
});
模块B:
connection.on('ready', function(){
connection.queue('queue1', {autoDelete: false}, function(queue){
queue.subscribe(function(msg) {
var login, param, parts = msg.data.toString('utf-8').split(';');
login = parts[0];
fname = parts[1];
result = somefucntion(login,param);
connection.publish('queue2',result);
console.log("send")
});
});
});
当我同时开始时,我收到了无数的消息"收到的回复"和"发送"在我的游戏机里。
我已阅读amqp文档但我无法找到任何解决方案。还有一种更好的方法来处理这些简单的反应吗?
答案 0 :(得分:0)
如果任何原因断开连接,连接会自动重新连接 - 包括故意断开连接。您可能希望禁用此行为:
var connection = amqp.createConnection(rabbitserver, { reconnect: false });