54 Stimmen

Anhebung der Höchstgrenze für Verbindungen pro Server in Google Chrome auf mehr als 6

Soweit ich weiß, ist die Höchstgrenze für Verbindungen pro Server derzeit (Ende 2011) immer noch bei 6. Bitte korrigieren Sie mich, wenn ich falsch liege. Es ist schlecht, dass wir dies nicht einfach wie in Firefox beheben können. Soweit ich weiß, ist dieser Wert hart kodiert.

Eine der Lösungen besteht darin, die Chromium-Quellen herunterzuladen und sie neu zu erstellen. Gibt es eine einfachere Lösung?

Gibt es irgendeinen trickreichen Weg, dies zu hacken, ohne ein Dutzend Mirror-Domains zu erstellen?

Warum ich diese Frage stelle : Meine Aufgabe ist es, eine HTML-Javascript-Diashow zu erstellen, die in einem Vollbildbrowser läuft, und ein großer Monitor hängt an der Wand. Das Javascript ist wirklich kompliziert, es lädt Fotos vor und macht eine Menge von Ajax-Aufrufe zu meinen Web-Services. Wenn die WIFI-Verbindung langsam ist, wenn 6 Fotos geladen werden, schlagen die AJAX-Aufrufe fehl, die Anwendung läuft schlecht. Ich möchte eine schnelle Lösung auf Basis von http oder Browser oder Ubuntu zwicken etwas anderes, weil der Wiederaufbau der Javascript-App wird Tage dauern.

Offtopic: Kennen Sie noch andere Dinge, die in meiner konkreten Situation optimiert werden können?

29voto

BenSwayne Punkte 16682

Der IE ist sogar noch schlimmer, da er nur 2 Verbindungen pro Domäne zulässt. Aber ich würde mich nicht darauf verlassen, dass man Client-Browser repariert. Selbst wenn Sie die Kontrolle über sie haben, werden Browser wie Chrome automatisch aktualisiert, und eine zukünftige Version könnte sich anders verhalten, als Sie erwarten. Ich würde mich darauf konzentrieren, das Problem innerhalb Ihres Systemdesigns zu lösen.

Sie haben die Wahl:

  1. Laden Sie die Bilder nacheinander, so dass jeweils nur 1 oder 2 XHR-Aufrufe aktiv sind (verwenden Sie das Erfolgsereignis des vorherigen Bildes, um zu prüfen, ob weitere Bilder heruntergeladen werden müssen, und starten Sie die nächste Anfrage).

  2. Verwenden Sie Sub-Domains wie serverA.myphotoserver.com und serverB.myphotoserver.com. Jede Sub-Domain hat ihren eigenen Pool für Verbindungslimits. Das bedeutet, dass Sie 2 Anfragen an 5 verschiedene Subdomänen richten können, wenn Sie das wollen. Der Nachteil ist, dass die Fotos entsprechend dieser Subdomains zwischengespeichert werden. Übrigens müssen dies keine "Spiegel"-Domänen sein, Sie können einfach zusätzliche DNS-Zeiger auf genau dieselbe Website/Server einrichten. Das bedeutet, dass Sie nicht viele Server verwalten müssen, sondern nur einen Server mit vielen DNS-Einträgen.

2voto

BrainSlugs83 Punkte 5871

Ich weiß nicht, ob man das in Chrome außerhalb von Windows machen kann - ein wenig Googeln zeigt, dass Chrome (und damit möglicherweise auch Chromium) gut auf einen bestimmten Registry-Hack reagieren könnte.

Wenn Sie jedoch nur nach einer einfachen Lösung suchen, ohne Ihren Code zu ändern, haben Sie Firefox in Betracht gezogen? In about:config können Sie nach "network.http.max" suchen, und dort gibt es ein paar Werte, die es wert sind, dass man sie sich ansieht.

Außerdem sollten Sie bei einem Gerät, das nicht bewegt wird (d. h. an einem festen Standort montiert ist), in Erwägung ziehen, kein Wi-Fi zu verwenden (selbst ein Home-Plug wäre in Bezug auf Latenz / Stabilität / Verbindungsabbrüche ein Fortschritt).

-1voto

Cooler Punkte 31

Übrigens, die HTTP 1/1-Spezifikation (RFC2616) empfiehlt nicht mehr als 2 Verbindungen pro Server.

Clients, die dauerhafte Verbindungen verwenden, SOLLTEN die Anzahl der gleichzeitigen Verbindungen, die sie zu einem bestimmten Server unterhalten, begrenzen. Ein Einzelbenutzer-Client SOLLTE NICHT mehr als 2 Verbindungen zu einem Server oder Proxy unterhalten. Ein Proxy SOLLTE bis zu 2*N Verbindungen zu einem anderen Server oder Proxy nutzen, wobei N die Anzahl der gleichzeitig aktiven Benutzer ist. Mit diesen Richtlinien sollen die HTTP-Antwortzeiten verbessert und Überlastungen vermieden werden.

-3voto

Brian Lyttle Punkte 14413

Es scheint keine externe Möglichkeit zu geben, das Verhalten der ausführbaren Dateien zu hacken.

Sie könnten die ausführbaren Dateien von Chrome(ium) ändern, da diese Informationen offensichtlich einkompiliert sind. Dieser Ansatz bringt eine Menge Probleme mit dem Support und automatischen Upgrades mit sich, so dass Sie dies wahrscheinlich vermeiden wollen. Sie müssen auch verstehen wie man die Änderungen vornimmt zu den Binärdateien, was die meisten Menschen nicht in ein paar Tagen lernen können.

Wenn Sie Ihren eigenen Browser kompilieren, schaffen Sie sich selbst ein Supportproblem, da Sie an eine bestimmte Version gebunden sind. Wenn Sie neue Funktionen und Fehlerbehebungen erhalten möchten, müssen Sie neu kompilieren. All dies bedeutet, dass Sie die Chrome-Entwicklung auf Fehler und Build-Breaks hin verfolgen müssen - nichts, was ein Webentwickler tun sollte.

Ich würde zunächst den Rat von @BenSwayne befolgen, aber es wäre vielleicht eine Überlegung wert, einen Teil der Arbeit außerhalb des Clients (des Webbrowsers) zu erledigen und sie in einen Hintergrundprozess zu packen, der auf demselben oder auf anderen Rechnern läuft. Dieser Prozess kann viel mehr Verbindungen verarbeiten, und Sie sind nur dafür verantwortlich, die Daten von ihm zurückzubekommen. Da es sich um einen lokalen Prozess handelt, erhalten Sie die Ergebnisse auch bei minimalen Verbindungen schnell zurück.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X