2013-09-06 2 views
0

Я новичок в socket.io. Так мой Socket.io сервера sometimws сбой дает эту ошибку нижеSocket.IO сервер зависает

timers.js:103 
     if (!process.listeners('uncaughtException').length) throw e; 
                   ^
Error: socket hang up 
    at createHangUpError (http.js:1360:15) 
    at ServerResponse.OutgoingMessage._writeRaw (http.js:507:26) 
    at ServerResponse.OutgoingMessage._send (http.js:476:15) 
    at ServerResponse.OutgoingMessage.write (http.js:749:16) 
    at XHRPolling.doWrite (E:\sitesroot\0\node_modules\socket.io\lib\transports\ 
xhr-polling.js:67:17) 
    at XHRPolling.HTTPPolling.write (E:\sitesroot\0\node_modules\socket.io\lib\t 
ransports\http-polling.js:132:8) 
    at XHRPolling.Transport.packet (E:\sitesroot\0\node_modules\socket.io\lib\tr 
ansport.js:515:15) 
    at Object.<anonymous> (E:\sitesroot\0\node_modules\socket.io\lib\transports\ 
http-polling.js:79:12) 
    at Timer.list.ontimeout (timers.js:101:19) 

Он не показывает, где и почему ошибка не происходит так, довольно уверен, что его ничего общего с кодом я написал. Может быть что-то с транспортом? У меня нет много знаний об этом. Любые предложения о том, как остановить его от сбоев, будут высоко оценены. Благодаря

+0

какая версия узла вы используете? Я настоятельно рекомендую установить последнюю стабильную версию – 1Mayur

+1

. Эта ошибка встречается главным образом в узле v8.20. – 1Mayur

+0

Am использует v8.20, какая версия наиболее стабильная? Я использую azure node.js sdk, и я где-то читал, что v8.21 может вызвать некоторые проблемы с azure sdk ..... любая идея, какую версию я должен использовать при использовании azure sdk? – Bitsian

ответ

4

Проблема в том, что @miktam заявлено. Чтобы исправить это, вам необходимо добавить прослушиватель ошибок в свой код. Добавить этот код в приложение:

//Error handler 
process.on('uncaughtException', function (exception) { 
    // handle or ignore error 
    console.log(exception); 
}); 

Если когда-нибудь есть ошибка будет console.log его вместо того, чтобы разбивать его. У меня была одна и та же проблема, и это было исправлено.

+0

Упрощенный ... Простое решение, но это было очень неприятно, пока я не достиг здесь ... Спасибо! – Sam

1

Проверить это issue

Цитирование Исаак Schlueter:

Хорошая новость заключается в том, что вы больше не утечка памяти. Плохая новость - , что вам действительно нужно добавить прослушивателей ошибок к вашим объектам.

В большинстве приложений вы обычно можете рассматривать ECONNRESET примерно так же, как , изящное закрытие. Просто убедитесь, что вы фактически прекратите использовать этот разъем , так как он теперь закрыт. Тем не менее, это не изящное закрытие, , поскольку оно ни в каком смысле не «грациозно». До v0.8.20 узел счастливо буферизует все записи для сброса сокетов, вызывая взрыв памяти смерть.

+0

Спасибо за информацию !! – Bitsian