Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript amqp重新启动时会出现Read EconReset_Javascript_Node.js_Rabbitmq_Amqp - Fatal编程技术网

Javascript amqp重新启动时会出现Read EconReset

Javascript amqp重新启动时会出现Read EconReset,javascript,node.js,rabbitmq,amqp,Javascript,Node.js,Rabbitmq,Amqp,目前,我创建了一个Sender类客户端,它可以向amqp发送消息,也可以重新连接到amqp。当消息需要发送到amqp时,如果连接失败,发送方可以尝试三次重新连接到amqp。这是密码 然后我用下面的代码测试它 var Sender = require('./sender.js'); var amqpAddress = 'amqp://localhost'; var sender = new Sender( amqpAddress, 2000, 3, sendMessageCallback );

目前,我创建了一个Sender类客户端,它可以向amqp发送消息,也可以重新连接到amqp。当消息需要发送到amqp时,如果连接失败,发送方可以尝试三次重新连接到amqp。这是密码

然后我用下面的代码测试它

var Sender = require('./sender.js');
var amqpAddress = 'amqp://localhost';
var sender = new Sender( amqpAddress, 2000, 3, sendMessageCallback );

function sendMessageCallback( ) {
    console.error('Message can NOT be sent due to MessageBus error');
}

// send message every 5 seconds
var CronJob = require('cron').CronJob;
var send_message_job = new CronJob({
    cronTime: '*/5 * * * * *',
    onTick: function(){
         sender.deliverMessage( key, msg );
    },
    start: true,
});

send_message_job.start();
然后我尝试随机停止和启动amqp服务。我发现当我第一次重新启动amqp服务时,发送方可以继续正常发送消息。但是,当我第二次尝试停止服务时,出现以下错误,程序崩溃

错误:在TCP.onread net.js:559:19处的errnoException net.js:905:11处读取ECONNRESET

我试着用同一个场景测试它几次,上面的错误总是在第二次出现。为什么?有人能帮我弄清楚如何处理它吗?

实际上,在错误事件中可以捕获异常EconReset

Sender.prototype.handleDisconnections_ = function() {
    return this.con_.on('error', (function( that ) {
        return function( err ) {
            //if ( err.code === 'ECONNRESET' ) {
                //return when.reject( err );
            //}

            return that;//.retryConnect_( that.attempts_, that.retryDelay_ , err );
        };
    })(this));
};