2011-02-03 20 views
6

Estoy usando socketio/node, para extraer algunas estadísticas funky para el navegador, todo lo estándar. Estoy usando las últimas versiones de ambas bibliotecas. Ahora, estoy teniendo un par de problemas con esto:SocketIO + Node - Recuperar conexiones perdidas

1) mensajes de advertencia en el registro de nodo:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. 
Trace: 
    at CleartextStream.<anonymous> (events.js:101:17) 
    at [object Object].<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/client.js:83:20) 
    at [object Object]._onConnect (/var/www/lib/other/Socket.IO/lib/socket.io/transports/xhr-polling.js:23:35) 
    at [object Object].check (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:77:12) 
    at Server.<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:33:14) 
    at Server.emit (events.js:45:17) 
    at HTTPParser.onIncoming (http.js:904:12) 
    at HTTPParser.onHeadersComplete (http.js:87:31) 
    at CleartextStream.ondata (http.js:820:22) 
    at CleartextStream._blow (tls.js:228:29) 

Este es un ejemplo de una advertencia XHR, que puedo entender un poco como la naturaleza de XHR es múltiple conecta/desconecta. Sin embargo, cuando tengo bastantes clientes conectados por otros transportes obtengo lo mismo.

2) Salidas de conexión aleatoria. Por alguna razón inexplicable, las conexiones abandonan aleatoriamente. Esto no es una máquina o navegador o incluso transporte específico. La conexión en un navegador simplemente dejará de recibir actualizaciones al azar. No hay un mensaje de desconexión específico en los registros del nodo y la actualización manual del navegador soluciona el problema.

Entonces, ¿qué me estoy preguntando? ¿Están estos 2 problemas relacionados o problemas por separado? ¿Has experimentado estas caídas de conexión? Si es así, ¿cómo has logrado resolverlos? Es bastante frustrante, ya que está tan cerca de ser 100% perfecto. Me gustaría sentirme abrigado y cómodo sabiendo que todos los clientes que miran las páginas de mi aplicación recibirán actualizaciones consistentes durante horas, incluso días, si así lo desean.

¡Le agradecemos su ayuda y consejo!

Saludos,

Pete

+0

¿qué versión de socket.io y nodo estás usando? –

+0

Estoy usando socket.io y también he experimentado las desconexiones aparentemente aleatorias. Ojalá pudiera arrojar más luz, pero simplemente no sé por qué sucede. Mucho se apaga lo que dicen los usuarios, ya que es difícil de reproducir. – mikeycgto

Respuesta

3

Me gustaría tener una respuesta sólida para usted señor, pero al menos puede ofrecerle una comprobación de validez.

He estado jugando con la biblioteca durante aproximadamente una semana, y he visto ese error exacto y errores adicionales en los que no se puede mantener una conexión de websocket (en buscadores compatibles con la tecnología de forma natural), al azar ID de sesión cae. En general, ust about nothing funciona de manera confiable.

Con toda justicia, es gratis y aún está en versión beta, por lo que ahí lo tiene.

Socket.io es una biblioteca con errores.

+4

tiene algunos caprichos, pero llamarlo una biblioteca con errores es un poco exagerado si me preguntas. Te desafío a escribir una mejor biblioteca o bifurcarla y arreglarla si crees que puedes hacer un mejor trabajo ... – Alfred

+1

@Alfred Bien, también creo que es una exageración. – XMen

+0

Mi 2c: tal vez no "buggy" (que es una palabra desagradable), pero de gran tamaño, tal vez sí. – Merc

1

Bueno, tengo parte de la respuesta. Según Guillermo Rauch (el creador de socket.io) este error no es realmente una pérdida de memoria, porque con una desconexión total se borrará. Aquí está el link a la lista de correo que lo explica.

Por lo tanto, es poco probable que estos dos problemas estén relacionados. También experimento el mensaje de advertencia, pero no he tenido problemas con los abandonos aleatorios.

+1

Como se menciona en el hilo, el primer problema debería solucionarse ahora. Aparte de eso, Socket.IO nos ha estado sirviendo bien hasta ahora.No he visto conexiones que no pueda atribuir a un enlace escamoso. –