Nodejs错误:读取ECONNRESET

3

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

该应用程序定期向AWS dynamodb发送用户数据。我收到了许多新的遗迹提醒,以下是堆栈跟踪:

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

我只想了解为什么会出现TLSWrap错误。
提前感谢。
1个回答

5

之前我也遇到过你提到的类似问题。

我通过注释代码(向第三方请求)进行调试,最终发现问题根源是由于dynamoDB引起的。有一些未捕获的异常(aws-sdk),并且它们没有被处理。

我尝试通过捕获异常来解决问题,但捕获未捕获的异常并不是一个好习惯。

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

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

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

keepAlive: true -- 我将其设置为false后,问题就没有再出现。但这不是正确的做法。对于每个向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包。

现在我的问题已经解决,没有再出现任何问题。


谢谢!升级了我的Node服务器后,我找不到错误了。 - rahulb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接