Pregunta

Mi versión Socket.io es Socket.io@0.8.7 y redis@0.7.1. Estoy en Windows.

En algunos lugares, he visto que el problema está resuelto. Supongo que estoy usando la última versión Socket.io. ¿Qué es emitter.setMaxListeners () y dónde puedo configurarlo?

(node) warning: possible EventEmitter memory leak detected. 11 listeners added.
Use emitter.setMaxListeners() to increase limit.
Trace:
    at RedisClient.<anonymous> (events.js:133:17)
    at Socket.<anonymous> (c:\HTML5\LIKEPREF\test\server\server.js:576:18)
    at Socket.$emit (events.js:67:17)
    at SocketNamespace.handlePacket (C:\Personal\software\nodejs\NODE\node_modul
es\socket.io\lib\namespace.js:335:22)
    at Manager.onClientMessage (C:\Personal\software\nodejs\NODE\node_modules\so
cket.io\lib\manager.js:459:38)
    at WebSocket.onMessage (C:\Personal\software\nodejs\NODE\node_modules\socket
.io\lib\transport.js:387:20)
    at Parser.<anonymous> (C:\Personal\software\nodejs\NODE\node_modules\socket.
io\lib\transports\websocket\hybi-16.js:40:10)
    at Parser.emit (events.js:67:17)
    at C:\Personal\software\nodejs\NODE\node_modules\socket.io\lib\transports\we
bsocket\hybi-16.js:286:16
    at Parser.expectHandler (C:\Personal\software\nodejs\NODE\node_modules\socke
t.io\lib\transports\websocket\hybi-16.js:297:15)

Estoy usando Redis PubSub y cuando me estoy suscribiendo a Redis, en ese momento arroja esta advertencia.

¿Fue útil?

Solución

Hay un problema conocido asociado con esto. Parece que fue reparado hace varios meses. La solución más fácil es establecer los oyentes máximos en 0 que eliminarán el límite real. Entonces se vería algo así:

this.sub = redis.createClient(opts.redisSub.port, opts.redisSub.host, opts.redisSub);
this.sub.setMaxListeners(0);

Puedes encontrar la discusión completa aquí: https://github.com/learnboost/socket.io/issues/520

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top