2012-02-16 14 views
4

私のsocket.ioバージョンは[email protected][email protected]です。 私はWindowsです。socket.io redisとメモリリーク

一部の地域では、問題が解決されたことがわかりました。私は最新のsocket.ioバージョンを使用していると思います。 emitter.setMaxListeners()とはどこに設定できますか?

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

私はRedisののpubsubとするとき、私はそれがこの警告をスローし、その時点で、Redisのに加入していますを使用しています。

答えて

8

これに関連する既知の問題があります。数ヶ月前にパッチを当てたようです。最も簡単な修正は、最大リスナーを0に設定して実際の制限を削除することです。 https://github.com/LearnBoost/socket.io/issues/520

+0

マイクのおかげで:

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

はあなたがここに十分な議論を見つけることができます。だから、次のようになります。議論によれば、thissetMaxListeners(0)の代わりにthis.maxListeners(0)でなければならない。とにかく私はあなたに更新しようとします。 – user644745

+0

マイク、ちょうどテストされています。 maxListeners(0)ではなくsetMaxListeners(0)である必要があります。うまく動作しているようです。ありがとう。 – user644745

関連する問題