El servidor Socket.IO cuelga

Soy nuevo en socket.io. Así que mi servidor socket.io a veces falla al dar este error a continuación

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. (E:\sitesroot\0\node_modules\socket.io\lib\transports\ http-polling.js:79:12) at Timer.list.ontimeout (timers.js:101:19) 

No muestra dónde o por qué está ocurriendo el error, así que estoy bastante seguro de que no tiene nada que ver con el código que he escrito. ¿Podría ser algo con los transportes? No tengo mucho conocimiento al respecto. Cualquier sugerencia sobre cómo evitar que se estrelle sería muy apreciada. Gracias

El problema es como @miktam dijo. Para solucionar este problema, debe agregar un detector de errores a su código. Agregue este código a su aplicación:

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

Cuando alguna vez haya un error, lo consolará y lo registrará en lugar de estrellarlo. Tuve exactamente el mismo problema y esto lo solucionó.

Revisa este asunto

Citando a Isaac Schlueter:

La buena noticia es que ya no estás perdiendo memoria. La mala noticia es que, de hecho, necesita agregar detectores de errores a sus objetos.

En la mayoría de las aplicaciones, por lo general puede tratar a ECONNRESET más o menos igual que un cierre elegante. Solo asegúrate de que realmente dejas de usar ese socket, ya que ahora está cerrado. Sin embargo, no es un cierre elegante, ya que no es en ningún sentido “elegante”. Antes de v0.8.20, el nodo felizmente almacenaría en búfer todas las escrituras para restablecer los sockets, causando la muerte de la explosión de memoria.

    Intereting Posts