2011-02-03 6 views
6

私はsocketio/nodeを使って、いくつかのファンキーな統計情報をブラウザに送り出します。私は両方のライブラリの最新バージョンを使用しています。さて、私はこれで問題のカップルを持っています:SocketIO + Node - 失われた接続を回復する

1)ノードのログに警告メッセージ:これは私がちょっとの性質として理解できるXHRの警告の一例である

(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は複数の接続/切断です。しかし、私はかなりの数のクライアントが他のトランスポートで接続している場合、私は同じことを取得します。

2)ランダム接続のドロップアウト。いくつかの説明できない理由のために、接続はランダムに脱落します。これは機械やブラウザではなく、特定の輸送手段でもありません。ブラウザ上での接続はランダムにアップデートの受信を停止します。ノードログに特定の切断メッセージがなく、ブラウザを手動で更新することで問題が解決されます。

このように2つの問題は関連しているのでしょうか別々の問題ですか。これらの接続が切断されたことがありますか?もしそうなら、どのようにそれらを解決することができましたか?非常にイライラしているので、100%完璧に近いです。私は、自分のアプリケーションのページを見ているすべてのクライアントが何時間も、一日でも一貫したアップデートを受け取ることができるという知識の中で、暖かく気楽に過ごしたいと思っています。

あなたのご助力とアドバイスは大歓迎です!

乾杯、

ピート

+0

socket.ioとnodeのどのバージョンを使用していますか? –

+0

私はsocket.ioを使用していて、一見無作為な切断を経験しています。私はもっ​​と光を放つことができればいいと思うが、なぜそれが起こるのか分からない。再現するのが難しいため、ユーザーが何を言っているのか、多くのことが起こっています。 – mikeycgto

答えて

3

は、私はあなたの先生のための強固な答えを持っていたいが、私は、少なくとも健全性チェックを提供することができます。

私は約1週間はライブラリを使いこなしていましたが、その正確なエラーとwebsocket接続を永続化できない追加のエラー(技術を自然にサポートするブラウザ)、ランダムセッションIDが低下します。一般的に、何も信頼できるものは何もない。

公平であれば、無料でベータ版ですので、そこに置いてあります。

Socket.ioはバグの1つのライブラリです。

+4

それはいくつかの癖がありますが、それをバグのライブラリと呼ぶことは、あなたが私に尋ねると、少し過言です。あなたがより良い仕事をすることができると思うなら、私はあなたにもっと良い図書館を書くか、それをフォークして修正することに挑戦します。 – Alfred

+1

@Alfred Right、私はそれが過言言だとも思っています。 – XMen

+0

私の2c:「バグ」(厄介な言葉ですが)ではないかもしれませんが、特大の場合もあります。 – Merc

1

私は答えの一部を持っています。 Guillermo Rauch(socket.ioの作成者)によると、このエラーは実際にはメモリリークではありません。完全な切断ではクリアされるからです。メーリングリストの説明にはlinkがあります。

したがって、これらの2つの問題が関連しているとは考えにくいです。警告メッセージも表示されますが、ランダムドロップアウトに問題はありませんでした。

+1

スレッドで説明したように、最初の問題は今修正する必要があります。それ以外は、Socket.IOが今まで私たちに役立ってきました。私は薄れているリンクに属していない接続ドロップを見たことがありません。 –

関連する問題