2012-02-16 1 views
4

My socket.io версия - [email protected] и [email protected] Я нахожусь в Windows.гнездо.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, которые удаляют фактический предел. Так это будет выглядеть примерно так:

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

Вы можете найти полное обсуждение здесь: https://github.com/LearnBoost/socket.io/issues/520

+0

Майк Спасибо. Согласно обсуждению, это должно быть this.maxListeners (0), а не thissetMaxListeners (0); В любом случае позвольте мне попробовать и обновить вас. – user644745

+0

Майк, только что протестирован. он должен быть установленMaxListeners (0), а не maxListeners (0). кажется, работает нормально. Благодарю. – user644745