3
我使用socket.io與node.js和我的路線之一,我有連接事件處理程序。Socket.io連接堆積在每個刷新
app.io.on('connection', function(socket) {
console.log('connect');
socket.on('disconnect', function(){
console.log('disconnect');
res.end();
});
});
我每次刷新的呼喚這條路線的頁面,似乎不斷增加了,例如,如果我刷新5次,我將最終有5「連接」的消息,在單次刷新,在日誌中。
有沒有一種很好的方法來限制它,所以它不這樣做?
謝謝!
編輯:
當我刷新多次,我得到這個錯誤:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit
我可以增加限制,但我有一種感覺,沒有正確的解決方案。
好吧,我已經這樣做了,它可以工作,但我需要將數據從我的路由代碼傳遞到套接字連接處理程序,如果我的連接處理程序首先定義在路徑之外,那麼我將如何傳遞對象從我的路線,回到我的連接處理程序? – dzm 2012-04-03 22:26:35
您可以使用數組來存儲來自http-request的對象,並在連接處理程序中讀取它們。但是我假設你想用一個http-request發送一些數據給連接的客戶端,在這種情況下,你只需要使用'app.io.emit('myEvent',{msg:'hello world'});'在請求處理程序中。 – stewe 2012-04-03 22:50:03
完美,是的,這應該沒問題。非常感謝 – dzm 2012-04-03 22:55:33