両端でnode.jsを使用してファイル同期プログラム(Dropboxとは異なります)を構築しています。潜在的に何千ものクライアントが同時にデータを要求する必要があります。
これが私の現在のシステムです:
- サーバーはWebSocketを介してクライアントに通知をプッシュします(ファイルは更新されています)
- クライアントはダウンロードをキューに入れ、アイドル時にHTTPリクエストを作成します
たとえば、それぞれ50 MBの圧縮されたチャンクでデータを提供するため、HTTPリクエストのオーバーヘッド(ヘッダー)はごくわずかです。
リクエストとプッシュ通知にWebSocketを使用する場合、次のようになります。
- 全体的な速度の顕著な改善?(遅延、認証などの削減)
- 接続を開いたままにするためのサーバーの追加のオーバーヘッド?
- バイナリデータのプッシュに関する問題?
ダウンロードが行われている間(多くのオーバーヘッド)にサーバーで通知をキューに入れたくないので、専用のWebSocketを介して通知を送信する必要があると思います。
注:これらのWebSocketは、クライアントのシステムがオンになっている限り、長期間開いています。
編集:別のCPUコアに移動するために、別のポートの別のhttpサーバーでWebSocketを使用します。数千(数十万ではないにしても)の同時WebSocketを開く可能性があります...