相关疑难解决方法(0)

节点js ECONNRESET

我正在运行带有socket.io的Express js应用程序用于聊天webapp,并且我在24小时内随机获得以下错误5次左右.节点进程永远包装,并立即重新启动.

问题是重新启动快速将我的用户踢出他们的房间而没人想要.

Web服务器由HAProxy代理.没有套接字稳定性问题,只使用websockets和flashsockets传输.我无法故意重现这一点.

这是节点v0.10.11的错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: read ECONNRESET     //alternatively it s a 'write'
    at errnoException (net.js:900:11)
    at TCP.onread (net.js:555:19)
error: Forever detected script exited with code: 8
error: Forever restarting script for 2 time
Run Code Online (Sandbox Code Playgroud)

编辑(2013-07-22)

添加了socket.io客户端错误处理程序和未捕获的异常处理程序.似乎这个捕获了错误:

process.on('uncaughtException', function (err) {
  console.error(err.stack);
  console.log("Node NOT Exiting...");
});
Run Code Online (Sandbox Code Playgroud)

所以我怀疑它不是socket.io问题,而是对我做的另一个服务器的http请求或mysql/redis连接.问题是错误堆栈无法帮助我识别代码问题.这是日志输出:

Error: read ECONNRESET
    at errnoException (net.js:900:11)
    at TCP.onread (net.js:555:19)
Run Code Online (Sandbox Code Playgroud)

我怎么知道是什么原因造成的?如何从错误中获得更多信息?

好吧,不是很冗长,但这里是带有"longjohn"的堆栈跟踪:

Exception caught: Error ECONNRESET
{ [Error: read ECONNRESET]
  code: 'ECONNRESET',
  errno: 'ECONNRESET',
  syscall: 'read',
  __cached_trace__: …
Run Code Online (Sandbox Code Playgroud)

sockets tcp node.js express

266
推荐指数
13
解决办法
46万
查看次数

标签 统计

express ×1

node.js ×1

sockets ×1

tcp ×1