2011-02-03 143 views
6

我使用socketio/node來抽出一些時髦的統計數據給瀏覽器,所有標準的東西。我正在使用這兩個庫的最新版本。現在,我有幾個問題與此:SocketIO +節點 - 恢復丟失的連接

1)在節點記錄警告信息:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. 
Trace: 
    at CleartextStream.<anonymous> (events.js:101:17) 
    at [object Object].<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/client.js:83:20) 
    at [object Object]._onConnect (/var/www/lib/other/Socket.IO/lib/socket.io/transports/xhr-polling.js:23:35) 
    at [object Object].check (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:77:12) 
    at Server.<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:33:14) 
    at Server.emit (events.js:45:17) 
    at HTTPParser.onIncoming (http.js:904:12) 
    at HTTPParser.onHeadersComplete (http.js:87:31) 
    at CleartextStream.ondata (http.js:820:22) 
    at CleartextStream._blow (tls.js:228:29) 

這是一個XHR的警告,我可以還挺理解爲本質的一個例子XHR是多個連接/斷開連接。但是,當我有相當多的客戶通過其他運輸連接我得到相同的。

2)隨機連接丟失。由於某些莫名其妙的原因,連接隨機退出。這不是機器或瀏覽器,甚至特定的傳輸。瀏覽器上的連接將隨機停止接收更新。節點日誌中沒有特定的斷開連接消息,手動刷新瀏覽器可以解決問題。

所以,我想知道的是 - 這兩個問題是相關的還是單獨的問題?你有沒有經歷過這些連接退出?如果是這樣,你是如何設法解決它們的?它非常令人沮喪,因爲它非常接近完美。我很想感受到溫暖和舒適的知識,即所有查看我的應用程序頁面的客戶端都可以在幾小時甚至幾天內獲得一致的更新。

我們非常感謝您的幫助和建議!

乾杯,

皮特

+0

您使用的是什麼版本的socket.io和節點? – 2011-02-12 05:33:17

+0

我正在使用socket.io,並經歷了看似隨機的斷開連接。我希望我能更多的瞭解,但我不知道爲什麼會發生。很多用戶認爲它很難重現。 – mikeycgto 2011-05-25 03:11:24

回答

3

我希望我有你的先生了堅實的答案,但我至少可以爲你提供一個全面的檢查。

我一直在搞圖書館大約一個星期了,我已經看到了確切的錯誤,以及其他錯誤,其中一個websocket連接不能持久(在自然支持技術的瀏覽器上),隨機會話ID下降。總的來說,沒有任何東西可靠地工作。

平心而論,它是免費的,仍處於測試階段,所以你有它。

Socket.io是一個馬車庫。

+4

它有一些怪癖,但稱它爲馬車圖書館有點誇張,如果你問我。我挑戰你寫一個更好的圖書館或分叉它,並修復它,如果你認爲你可以做得更好...... – Alfred 2011-06-06 02:29:26

1

那麼我有一部分答案。根據Guillermo Rauch(socket.io的創建者)的說法,這個錯誤並不是真正的內存泄漏,因爲完全斷開它會被清除。這是郵件列表中的link,它解釋了它。

所以這兩個問題不太可能是相關的。我也遇到了警告信息,但我沒有遇到隨機丟失的問題。