2013-04-29 24 views
10

NodeJSでSocketIOを実行しています。開発を容易にするために新技術の力を使いたい私のペットプロジェクトであるため、幅広いブラウザサポートについてはあまり気にしません。私の懸念事項は、JSONデータをサーバーからクライアントに大量に送信して戻す方法です。さて、これらの量はビデオや画像のバイナリデータの場合ほど大きくはありませんが、要求ごとに数百キロバイトを超えないと考えます。私が見大量のデータを扱うWebSocketとXHR

2つのシナリオは以下のとおりです。

  1. は、いくつかのデータをフェッチする必要があり、サーバからクライアントにWebSocketを経由して通知を送信します。クライアントコードはサーバへの通常のXHRリクエストを実行し、XHR経由でデータを取得します。
  2. サーバーからクライアントにWebSocketを介してデータセット全体を送信します。この場合、追加のリクエストを実行する必要はありません。WebSocket経由ですべてのデータを取得するだけです。

私はMeteor.jsの最初のケースを見たので、私はそれの理由を疑問視しました。 あなたの意見をお寄せください。

+2

おそらくこれが役立ちます。http://stackoverflow.com/questions/13010354/chunking-websocket-transmission – jAndy

答えて

5

WebSocketは大規模なデータセット(最大16エクサバイト、の理論)をサポートする必要があります。したがって、その観点からはうまくいくはずです。 XHRの利点は、時間の経過とともに進捗状況を観察することができ、大規模なデータブロックのテストが一般的になることです。たとえば、(データをストリーミングするのではなく)データ全体をメモリにロードするので、大規模なデータをうまく扱えないwebsocketサーバーの実装を見てきましたが、もちろんそうではありません。 io(dunno)。メモリ使用量と安定性を見ながら、socket.ioで試してみてください。それがうまくいけば、間違いなくwebsocketsに行ってください。なぜなら、長期的には、大きなデータパッケージのサポートがより良くなり、間違いなく悪化しないからです。不安定になったり、socket.ioが大きなデータファイルをストリーミングできない場合は、XHR構造を使用してください。

BtwちょうどGoogle検索がsiofileとなっていますが、それほど多くは見ていませんが、必要なものだけかもしれません。

+0

ありがとうございました。その価値のあるものについては、これが正確であることを願っています。 – zallarak

+0

Sergeyと連絡を取り合う必要があります。もし彼がそれをすれば、非常に貴重な情報になるでしょう;-)私が共有できるのは、理論と関連するgithubプロジェクトです。 –