Google Chromeの1サーバーあたりの最大接続数を6以上に制限。

私の知る限り、2011年後半の現時点では、1サーバーあたりの最大接続数は6のままです。間違っていたら訂正してください。Firefoxのように簡単に修正できないのが残念です。私の知る限り、この値はハードコードされています。

解決策の1つは、Chromiumのソースをダウンロードして再構築することです。もっと簡単な解決策はありますか?

何十ものミラードメインを作成せずに、これをハックするトリッキーな方法はありますか?

**なぜ質問しているのでしょうか?私のタスクは、フルスクリーンのブラウザで実行されるhtml-javascriptスライドショーを作成することです。javascriptは本当に複雑で、写真をプリロードし、私のウェブサービスに多くのajaxコールを行います。WIFI接続が遅かったり、6枚の写真を読み込んでいたりすると、AJAX呼び出しが失敗して、アプリケーションの動作が悪くなります。javascriptアプリの再構築には何日もかかるので、httpかブラウザかubuntuをベースにした高速なソリューションが欲しいのです。

オフトピック:あなたは私の具体的な状況で微調整することができます他のものを知っていますか?

質問へのコメント (7)
ソリューション

IEは1ドメインにつき2接続の制限があるので、さらに悪い。しかし、私はクライアント・ブラウザの修正に頼るつもりはない。たとえコントロールできたとしても、クロームのようなブラウザは自動アップデートされますし、将来リリースされるブラウザはあなたの期待とは異なる動作をするかもしれません。私なら、システム設計の中で問題を解決することに集中します。

あなたの選択肢は

1.画像を順番にロードして、一度にアクティブになるXHRコールは1つか2つだけにする(前の画像の成功イベントを使用して、ダウンロードする画像がまだあるかどうかをチェックし、次のリクエストを開始する)。

2.serverA.myphotoserver.com や serverB.myphotoserver.com などのサブドメインを使用します。各サブドメインは、接続制限のための独自のプールを持ちます。つまり、5つの異なるサブドメインに2つのリクエストを送ることができます。欠点は、写真がこれらのサブドメインに従ってキャッシュされることである。ちなみに、これらのサブドメインはミラードメインである必要はありません。つまり、多くのDNSレコードを持つ1つのサーバーを管理するだけで、多くのサーバーを管理する頭痛の種はありません。

解説 (3)

ググってみると、Chrome(ひょっとするとChromiumも)はレジストリをハックするとうまくいくかもしれない。

しかし、もしコードベースを変更することなくシンプルな解決策を探しているのであれば、Firefoxはどうでしょうか?about:configで"network.http.max"を検索することができ、そこには間違いなく見る価値のある値がいくつかあります。

また、移動しない(つまり固定された場所に設置される)デバイスの場合、Wi-Fiを使用しないことを検討する必要があります(Home-Plugでも、遅延/安定性/接続の切断に関してはステップアップするでしょう)。

解説 (3)

ところで、HTTP 1/1仕様(RFC2616)は、サーバーごとに2つ以下の接続を示唆しています。

永続的な接続を使用するクライアントは、特定のサーバーに維持する同時接続の数を制限する必要があります。 シングルユーザークライアントは、サーバーまたはプロキシとの接続を2つ以上維持しないでください。 プロキシは、別のサーバーまたはプロキシへの最大2 * N接続を使用する必要があります。Nは、同時にアクティブなユーザーの数です。 これらのガイドラインは、HTTP応答時間を改善し、 ⁇ を回避することを目的としています。

解説 (4)

実行ファイルの動作をハックする外部からの方法はないようだ。

この情報は明らかにコンパイルされているので、Chrome(ium)の実行ファイルを変更することは可能です。この方法はサポートや自動アップグレードに多くの問題をもたらすので、おそらく避けたいでしょう。また、バイナリの変更方法を理解する必要がありますが、ほとんどの人が数日で習得できるものではありません。

自分のブラウザをコンパイルすると、特定のリビジョンに縛られることになり、サポート上の問題を引き起こすことになります。新機能やバグフィックスを入手したい場合は、再コンパイルする必要があります。このようなことはすべて、Chromeのバグやビルドの破損のためにChromeの開発を追跡することになり、ウェブ開発者がすべきことではありません。

今のところ@BenSwayneのアドバイスに従いますが、クライアント(ウェブブラウザ)の外側で作業の一部を行い、同じマシンまたは別のマシンで動作するバックグラウンドプロセスに置くことを考える価値があるかもしれません。このプロセスはより多くのコネクションを処理することができ、あなたはそのプロセスからデータを取り戻すだけでよい。このプロセスはローカルなので、最小限の接続でもすぐに結果を得ることができます。

解説 (6)