Я использую net.createServer (хост, порт) + клиент flash-сокета. Когда моя игра работает в течение нескольких часов и на большой нагрузке - сервер начинает откатывать соединения. Клиент получает «подключенное» событие и сразу после этого - событие «закрыть». Это петли типа 3-4-5-6 раз и соединяется. Сервер не находится под большой нагрузкой. Существует много ресурсов ОЗУ и ЦП.nodejs net socket начинает отбрасывать соединения при большой нагрузке
Мой код выглядит следующим образом:
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);
Как я могу отладить проблемы? Есть ли какой-нибудь код (мой), который может вызвать такую вещь?
Перед тем, как писать, вам не нужно проверять возможность записи, но вам нужно проверить * результат * записи. – EJP
Но это означает, что мне нужно удалить код закрытия соединения из обработчика onError, что приведет к зависанию сокетов в моем подключенном массиве клиентов. –