wake-up-neo.net

Chrome hängt nach einer bestimmten Menge übertragener Daten - Warten auf verfügbaren Socket

Ich habe ein Browsergame und seit kurzem füge ich dem Spiel Audio hinzu.

Chrome lädt nicht die gesamte Seite und bleibt bei "91 requests | 8.1 MB transferred" Hängen. Es werden keine weiteren Inhalte geladen. und es bricht sogar die Website in allen anderen Registerkarten und sagt Waiting for available socket.

Nach genau 5 Minuten werden die Daten geladen.

enter image description here

enter image description here

Dies geschieht in keinem anderen Browser.

Das Entfernen einer MP3-Datei (der zuletzt hinzugefügten) hat das Problem behoben. Handelt es sich also möglicherweise um ein Datenlimitproblem?

97
Foxhoundn

Sieht so aus, als ob Sie die maximale Anzahl an Verbindungen pro Server erreicht haben. Ich sehe, dass Sie viele statische Dateien laden, und mein Rat ist, sie auf Subdomains zu trennen und sie zum Beispiel direkt mit Nginx zu liefern.

  • Erstellen Sie eine Unterdomäne mit dem Namen img.yoursite.com und laden Sie alle Ihre Bilder von dort.

  • Erstellen Sie eine Unterdomäne mit dem Namen scripts.yourdomain.com und laden Sie alle Ihre JS- und CSS-Dateien von dort.

  • Erstelle eine Subdomain mit dem Namen sounds.yoursite.com und lade alle deine MP3s von dort ... etc ..

Nginx bietet großartige Möglichkeiten, um statische Dateien direkt bereitzustellen und das Zwischenspeichern von statischen Dateien zu verwalten.

66
Predte4a

Erklärung:

Dieses Problem tritt auf, weil Chrome standardmäßig bis zu 6 offene Verbindungen zulässt. Wenn Sie also mehrere Mediendateien gleichzeitig von 6 <video> - oder <audio> - Tags streamen, Die 7. Verbindung (z. B. ein Bild) bleibt einfach hängen, bis einer der Sockets geöffnet wird.Normalerweise wird eine offene Verbindung nach 5 Minuten Inaktivität geschlossen, und aus diesem Grund werden Ihre PNGs zu diesem Zeitpunkt endgültig geladen .

Lösung 1:

Sie können dies vermeiden, indem Sie die Anzahl der Medien-Tags minimieren, die eine offene Verbindung aufrechterhalten. Und wenn Sie mehr als 6 benötigen, stellen Sie sicher, dass Sie diese zuletzt laden oder dass sie keine Attribute wie preload="auto" Haben.

Lösung 2:

Wenn Sie versuchen, mehrere Soundeffekte für ein Web-Spiel zu verwenden, können Sie die Web Audio API verwenden. Oder verwenden Sie zur Vereinfachung einfach eine Bibliothek wie SoundJS , mit der Sie eine große Anzahl von Soundeffekten/Musiktiteln gleichzeitig abspielen können.

Lösung 3: Steckdosen mit Gewalt öffnen (Nicht empfohlen)

Wenn Sie müssen, können Sie die Sockets in Ihrem Browser erzwingen (In Chrome):

  1. Gehen Sie zur Adressleiste und geben Sie chrome://net-internals Ein.
  2. Wählen Sie aus dem Menü Sockets.
  3. Klicken Sie auf die Schaltfläche Flush socket pools.

Diese Lösung wird nicht empfohlen, da Sie nicht erwarten sollten, dass Ihre Besucher diese Anweisungen befolgen, um Ihre Site anzeigen zu können.

137
Marquizzo

Die Nachricht:

Warten auf verfügbaren Socket ...

wird angezeigt, weil Sie ein Limit für den ssl_socket_pool entweder pro Host, Proxy oder Gruppe erreicht haben.

Hier ist die maximale Anzahl von HTTP-Verbindungen, die Sie mit einem Chrome Browser herstellen können:

  • Die maximale Anzahl von Verbindungen pro Proxy beträgt 32 Verbindungen. Dies kann in der Richtlinienliste geändert werden.
  • Maximal pro Host: 6 Verbindungen.

    Dies ist wahrscheinlich im Quellcode des Webbrowsers fest codiert, sodass Sie es nicht ändern können.

  • Insgesamt 256 HTTP-Verbindungen, die pro Browser zusammengefasst wurden.

Quelle: Unternehmensnetzwerk für Chrome Geräte

Die obigen Grenzwerte können bei chrome://net-internals/#sockets (Oder in Echtzeit bei chrome://net-internals/#events&q=type:SOCKET%20is:active) Überprüft oder gelöscht werden.


Ihr Problem mit Audio kann mit dem Chrome-Fehler 162627 zusammenhängen, bei dem HTML5-Audio nicht geladen werden kann und maximal gleichzeitige Verbindungen pro Server auftreten: Proxy. Diese Ausgabe ist zum Zeitpunkt des Schreibens (2016) noch aktiv.

Viel älteres Problem im Zusammenhang mit HTML5-Videoanfragen steht noch aus , dann hängt es wahrscheinlich mit Problem # 234779 zusammen, das 2014 behoben wurde. Und im Zusammenhang mit SPDY, zu finden in Issue 324653: SPDY-Problem: Warten auf verfügbare Sockets , aber dies wurde bereits im Jahr 2014 behoben, daher ist es wahrscheinlich nicht im Zusammenhang.

Ein anderes verwandtes Problem, das jetzt als Duplikat markiert ist, befindet sich in Issue 401845: Fehler beim Vorladen von Audio-Metadaten. Es wurden nur 6 von 10 + geladen, was auf das Problem mit dem Media-Player-Code zurückzuführen ist, bei dem eine Reihe von angehaltenen Anforderungen zurückblieben.


Dies kann auch mit einigen Chrome Adware- oder Antivirus-Erweiterungen, die Ihre Sockets im Hintergrund verwenden) zusammenhängen (wie Sophos oder Kaspersky ), suchen Sie nach Netzwerk Aktivität in DevTools .

12
kenorb

die einfache und korrekte Lösung besteht darin, die Audio- und Videodatei vor dem Laden aus der Einstellung zu entfernen und die Seite erneut zu überprüfen. Das Problem, auf den verfügbaren Socket zu warten, ist behoben.

Wenn Sie den Jplayer verwenden, ersetzen Sie Vorspannung: "Metadaten" durch Vorspannung: "keine" aus der Jplayer-JS-Datei ...

Preload: "Metadaten" ist der Standardwert, mit dem Ihre Audio-/Videodatei beim Laden der Seite abgespielt wird. Deshalb zeigt google chrome= zeigt "auf verfügbaren Socket warten" an " Error

6

Unser erster Gedanke ist, dass die Website ausgefallen ist oder dergleichen, aber die Wahrheit ist, dass dies nicht das Problem oder die Behinderung ist. Es ist auch kein Problem, da eine einfache Verbindung beim Testen unter Firefox, Opera oder im Dienste-Explorer wie gewohnt geöffnet wird.

Der Fehler in Chrome zeigt ein Schild mit der Aufschrift "Diese Site ist nicht verfügbar" und einer Erläuterung mit der Aufschrift "Fehler 15 (net :: ERR_SOCKET_NOT_CONNECTED): Unbekannter Fehler" an. Der Fehler ist in Google Chrome, genauer gesagt in seinen Aktualisierungen, durchaus üblich, und seine Problemumgehung besteht darin, den Computer neu zu starten.

Da Teillösungen nicht viel sind, bieten wir ein Tutorial an, mit dem Sie den Fehler in weniger als einer Minute beheben können. Um dieses Problem zu vermeiden und sicherzustellen, dass Dienste normalerweise in Google geöffnet sind, sollte Chrome Folgendes in die Adressleiste einfügen: chrome: // net-internals (geben Sie dann "Enter" ein). Sie müssen dann zum "Socket" im linken Menü gehen und "Flush Socket Pools" auswählen (siehe die folgenden Screenshots zur Anleitung http://www.fixotip.com/how-to-fix-error) -warten-auf-verfügbare-Sockets-in-Google-Chrome / ) Damit ist das Problem behoben und es treten keine Probleme mehr beim Zugriff auf Google Mail, Google oder einen der Dienste des Giganten von Mountain View auf. Ich hoffe, Sie fanden es nützlich und teilen das Tutorial mit denen sie brauchen oder soziale Netzwerke: Facebook, Twitter oder Google+.

0
John