Nodejs错误:读取ECONNRESET

rah*_*ulb 3 node.js socket.io amazon-dynamodb

我在我的一个应用程序中使用Nodejs进行Web套接字通信.

此应用程序定期将用户数据发送到AWS dynamodb.我在下面的堆叠中获得了许多新的遗物替代品:

Error: read ECONNRESET
 at exports._errnoException (util.js:856:11)
 at TLSWrap.onread (net.js:545:26) /
Run Code Online (Sandbox Code Playgroud)

我只想了解为什么会发生此TLSWrap错误.

提前致谢

Pri*_*ata 5

早些时候我遇到了与你提到的非常相似的问题.

我通过评论代码(向第三方请求)调试找到问题的根本原因,最后我得到了问题,因为dynamoDB引发了问题.一些未被捕获的异常是扔(aws-sdk)并且它没有被处理.

我尝试捕捉异常.但抓住未被捕获的例外并不是一个好习惯.

process.on('uncaughtException', function (err) {
    logger.log('error','UNCAUGHT EXCEPTION - keeping process alive:',  err);
});
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过更改aws配置来解决问题

AWS.config.httpOptions['agent'] = new https.Agent({
    keepAlive: true,
    ciphers: 'ALL',
    secureProtocol: 'TLSv1_method'
});
Run Code Online (Sandbox Code Playgroud)

keepAlive:true - 我做错了,之后我没有得到这个问题.但这不是一个正确的方法.对于每个对dynamodb的请求,它将再次进行握手,这将使速度变慢.

secureProtocol:'TLSv1_method' - 我也尝试了不同的方法(https://www.openssl.org/docs/man1.0.2/ssl/TLSv1_method.html).但它没有帮助我

我的nodejs版本是5.2.我刚刚将nodejs版本升级到6.11(LTS)并更新了aws-sdk软件包.

现在我的问题解决了,而不是一个问题.