节点js ECONNRESET
我用Socket.IO运行express js APP进行聊天。 24小时内随机获取了5次以下错误。 节点进程将永远包装并立即重新启动。
问题是重新启动特快列车会把我的用户赶出他们的房间,谁也不想这样做。
Web服务器由HAProxy代理。 没有套接字稳定性问题,只需使用web套接字和闪存套接字进行传输。 我不能故意复制这个。
这是节点v0.10.11的错误。 events.js:72
thrower //Unhandled'error'event
^ error : readeconnreset//alternativelyitsa ' write '
Aterrnoexception (net.js :900336011 ) )。
at TCP.on read (net.js :55:19 (error : foreverdetectedscriptexitedwithcode :8 error 3360 foreverrrestingscripcripode
添加了Socket.IO客户端错误处理程序和未处理的异常处理程序。 这个人好像在捕捉错误。 process.on(uncaughtexception ),function(err )。
控制台. error (err.stack;
控制台. log (nodenotexiting…); );
因此,我怀疑这不是Socket.IO的问题,而是到另一台服务器的http请求或MySQL/redis连接。 问题不帮助错误堆栈识别我的代码问题。 以下为日志输出: Error:readECONNRESET
Aterrnoexception (net.js :900336011 ) )。
at TCP.on read (net.js :55336019 )。
怎么知道是什么原因? 如何从错误中获得更多的信息?
是的,虽然不详细,但以下是带“Longjohn”的堆栈跟踪。 exception caught 3360 erroreconnreset { [ error 3360 readeconnreset ]
代码: ' Econnreset ',
errno:'ECONNRESET ',
syscall:'read ',
__cached_trace__:
[ {接收程序: [对象]、
fun : [ function : errno exception ],
pos:22930},
{receiver:[Object]、fun:[Function:onread]、pos:14545}、
{}、
{接收方: [对象],
fun : [ function : fireerrorcallbacks ],
pos:11672},
{receiver:[Object],fun:[Function],pos:12329},
{receiver:[Object]、fun:[Function:onread]、pos:14536}]、
__previous__:
{[Error]
id:1061835,
定位: ' fireerrorcallbacks (net.js :439 )、
_ _ location _ _ 3360 ' process.next tick ',
_ _ previous _ _ :空值,
__trace_count__:1,
__cached_trace__:[[Object]、[Object]、[Object]]}}
是因为这个吗?