首页 > 解决方案 > 节点js ECONNRESET events.js:72 throw er

问题描述

您好,我正在研究 Node js 套接字。我正在通过 ip 和端口监听来自多个设备的数据。运行一段时间后,我得到了这个异常,我的程序停止了

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: read ECONNRESET
    at errnoException (net.js:905:11)
    at TCP.onread (net.js:559:19)

这是我写的代码

var net = require('net');
var request = require('request');



var net = require('net');
var HOST = '172.xx.x.xx';
var PORT = 52xx;
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    // Fork workers.
    for (var i = 0; i < numCPUs; i++) {
        cluster.fork();
    }

    cluster.on('death', function(worker) {
        console.log('worker ' + worker.pid + ' died');
        cluster.fork();
    });
} else {
    net.createServer(function(socket){
         console.log('received connection...');
        socket.on('data', function(data) {

            var options = {
  uri: 'http://demourl/api',
  method: 'POST',
  body: {
    message:data.toString()
  },
  json: true 

};
             console.log(data.toString());

             request(options, function (error, response, body) {

});

        });


    }).listen(PORT, HOST);
}

如何捕获错误并防止我的程序停止。

标签: node.jssocketstcp

解决方案


包括socket.on("error", ...这样的。看看这个问题

socket.on("error", (err) =>
    console.log("socket error: ")
    console.log(err.stack);
    socket.destroy();
)

推荐阅读