我使用Socket.io运行聊天web APP应用程序的express.js APP应用程序,但在24小时内随机收到了约5次以下错误。 节点进程被永久封装,并立即重新启动。
问题是重新启动Express把我的用户赶出了他们的房间,没有人想要它。
Web服务器由HAProxy代理。 只有websockets和flashsockets传输没有套接字稳定性问题。 不能有意复制这个内容。
这是节点错误v0.10.11 :
events.js:72
throw er; //Unhandled 'error' event
^
error : readeconnreset//alternativelyitsa ' write '
(aterrnoexception (net.js :900336011 ) ) ) ) ) ) ) )。
at TCP.on read (net.js :55336019 )。
error : foreverdetectedscriptexitedwithcode :8
error : foreverrestartingscriptfor2time
编辑(2013-07-22 )。
添加了socket.io客户端错误处理程序和未捕获的异常处理程序。 此错误似乎已捕获:
process.on(uncaughtexception ),function(err )。
控制台. error (err.stack;
console.log('nodenotexiting . ';
);
soisuspectit ' snotasocket.ioissuebutanhttprequesttoanotherserver
thatidooramysql/re disconnection.theproblemisthattheerrorstack
doesn ' thelpmeidentifymycodeissue.hereisthelogoutput 3360
error :读取枚举集
(aterrnoexception (net.js :900336011 ) ) ) ) ) ) ) )。
at TCP.on read (net.js :55336019 )。
How do I know what causes this? How do I get more out of the error?
Ok,notveryverbosebuthere ' sthestacktracewithlongjohn :
exception caught 3360错误恢复
{ [Error: read ECONNRESET]
代码: ' 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]
hereiservetheflashsocketpolicyfile :
net=require('net ) ) )。
net.createserver((socket )=
socket.write (? XML版本=' 1.0'? n ' )
socket.write (' http://www.macromedia.com/XML/dtds/cross-domain-policy.dtd'n ' ) )
socket.write('n ' )。
socket.write('n ' )。
socket.write('n ' )。
socket.end (
(Listen ) 843 ) )。
Can this be the cause?