nodejs + amqp默默死亡

我有基本脚本采取amqp消息,并转发给socket.io它工作几个小时,有时几天,但最终它静静地停止转发amqp消息,同时继续发出心跳。

日志显示,当它到达中断状态时,它不会尝试发送socket.io消息,因为amqp消息到达,所以我认为问题是与amqp连接/订阅,而不是socket.io

我testing了脚本运行时手动closures并重新启动rabbitmq服务器,似乎没有问题重新连接,并继续按照它应该的function。

var port = 8888, http = require("http"), amqp = require("amqp"), socketio = require("socket.io"), express = require("express"), rabbitMq = amqp.createConnection({ host: 'server', reconnect: true }), app = express(), server = http.createServer(app), io = socketio.listen(server); rabbitMq.on("ready", function () { console.log("ready"); var queue = rabbitMq.queue("ft-secondary-display", function () { queue.bind(rabbitMq.exchange('ft', {type: 'topic'}), "data"); console.log("bound"); queue.subscribe(function (message, headers, basicInfo) { var data = {'key': basicInfo, 'data': message.data.toString()}; io.sockets.emit("message-name", data); }); }); }); setInterval(hb, 10000); function hb(){ io.sockets.emit("message-name", "heartbeat"); } 

这是amqp库中的一个错误: https : //github.com/postwait/node-amqp/issues/306