Question

La version de My est socket.io@0.8.7 et redis@0.7.1. Je suis sous Windows.

Dans certains endroits, je l'ai vu que le problème est résolu. Je suppose que je suis en utilisant la dernière version socket.io. ce qui est emitter.setMaxListeners () et où puis-je le mettre?

(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)

J'utilise Redis PubSub et quand je suis abonne à Redis, à ce moment-là, il vomit cet avertissement.

Était-ce utile?

La solution

Il y a un problème connu associé à cela. On dirait il a été patchés il y a plusieurs mois. Le correctif est plus facile de définir les auditeurs maximum à 0 qui supprimera la limite réelle. Donc, il ressemblerait à quelque chose comme ceci:

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

Vous pouvez trouver la pleine discussion ici: https://github.com/LearnBoost/socket.io/issues / 520

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top