nodejs setMaxListeners zu vermeiden, memory-leak-detection

Las ich einige andere Fragen und Beiträge, aber ich konnte nicht finden wo sich zu bewerben .setMaxListeners(0).
Ich bin mit einem einfachen websocket-server, der kommt mit der errer:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:689:33)
at XHRPolling.Transport.setHandlers            (D:\nodeJS\host\node_modules\socket.io\lib\transport.js:116:15)
at XHRPolling.HTTPPolling.setHandlers        (D:\nodeJS\host\node_modules\socket.io\lib\transports\http-polling.js:53:39)
at XHRPolling.Transport.handleRequest (D:\nodeJS\host\node_modules\socket.io\lib\transport.js:70:10)
at XHRPolling.HTTPTransport.handleRequest (D:\nodeJS\host\node_modules\socket.io\lib\transports\http.js:84:39)
at XHRPolling.HTTPPolling.handleRequest (D:\nodeJS\host\node_modules\socket.io\lib\transports\http-polling.js:73:41)
at XHRPolling.Transport (D:\nodeJS\host\node_modules\socket.io\lib\transport.js:31:8)
at XHRPolling.HTTPTransport (D:\nodeJS\host\node_modules\socket.io\lib\transports\http.js:29:13)
at XHRPolling.HTTPPolling (D:\nodeJS\host\node_modules\socket.io\lib\transports\http-polling.js:27:17)

Ich bin die Instanziierung der router diese Weise:

var app = require('http').createServer(handler)
, io = require('socket.io').listen(app, { log: false })
, fs = require('fs');
app.listen(8070);

Dann bin ich empfangsbereit für eingehende socket-requests:

io.sockets.on('connection', function (socket) {

       socket.on('createTake', function(data){...}
});

Wo kann ich mich bewerben, die MaxListeners?

Ich schon so probiert:

io.sockets.on(...).setMaxListeners(0);

Aber es funktioniert nicht.

InformationsquelleAutor marcel | 2013-11-19
Schreibe einen Kommentar