Frage

Meine socket.io-version ist socket.io@0.8.7 und redis@0.7.1.Ich bin auf Windows.

In einigen Orten, die ich gesehen habe, dass das Problem gelöst ist.Ich nehme an, ich verwende die neueste socket.io-version.was ist ein emitter.setMaxListeners() und wo kann ich es einstellen ?

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

Ich verwende redis pubsub und wenn ich abonniere redis, und zu diesem Zeitpunkt wirft diese Warnung.

War es hilfreich?

Lösung

Es ist ein bekanntes Problem im Zusammenhang mit diesem.Sieht aus wie es gepatcht wurde vor einigen Monaten.Die einfachste Lösung ist, legen Sie die maximale Hörer auf 0, die werden entfernen die eigentliche Grenze.So würde es etwa so Aussehen:

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

Sie finden die ganze Diskussion hier: https://github.com/LearnBoost/socket.io/issues/520

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top