nodejs 网络套接字在重负载时开始断开连接

nodejs net socket starts dropping connections when on heavy load

我正在使用 net.createServer(主机、端口)+ 闪存套接字客户端。 当我的游戏运行数小时并承受高负载时 - 服务器开始断开连接。 客户端收到 "connected" 事件,紧随其后 - "close" 事件。 它像这样循环 3-4-5-6 次并连接。 服务器负载不重。有足够的 RAM 和 CPU 资源。

我的代码如下所示:

var net = require("net"); 
server = net.createServer(function(socket) {
                socket.setTimeout(15000);
                socket.setKeepAlive(true);
                //used to store string socket data untill packet delimiter is received
                socket.myBuffer = ""; //(and then process the JSON message)

                socket.on("data", onData); 
                socket.on("error", onError);            
                socket.on("end", onClientDisconnect);
                socket.on("timeout", onClientDisconnect); 
});  
server.listen(port);

我该如何调试这个问题?是否有任何类型的代码(我的)可能导致这种情况?

原来是因为我在写东西之前没有检查可写套接字,因为我关闭了 onError 处理程序中的连接。 所以发生的事情是: socket.write(..) 触发错误,因为套接字不可写(尽管已连接)并且在错误时我关闭套接字,因此客户端开始重新连接并且循环 3-7 次直到发送无一例外。