Ich habe ein Browsergame und habe kürzlich damit begonnen, dem Spiel Audio hinzuzufügen.
Chrome lädt nicht die gesamte Seite und bleibt hängen "91 requests | 8.1 MB transferred"
und lädt keinen weiteren Inhalt mehr. und es bricht sogar die Website in allen anderen Registerkarten, sagt Waiting for available socket
.
Nach 5 Minuten (genau) werden die Daten geladen.
Dies ist in keinem anderen Browser der Fall.
Das Entfernen einer MP3-Datei (der zuletzt hinzugefügten) hat das Problem behoben. Handelt es sich also möglicherweise um ein Datenlimitproblem?
sockets
google-chrome
http
networking
streaming
Foxhoundn
quelle
quelle
Antworten:
Sieht so aus, als würden Sie das Limit für Verbindungen pro Server erreichen. Ich sehe, dass Sie viele statische Dateien laden, und mein Rat ist, sie in Subdomains zu trennen und sie beispielsweise direkt mit Nginx bereitzustellen.
Erstellen Sie eine Subdomain mit dem Namen img.yoursite.com und laden Sie alle Ihre Bilder von dort.
Erstellen Sie eine Subdomain mit dem Namen scripts.yourdomain.com und laden Sie von dort aus alle Ihre JS- und CSS-Dateien.
Erstellen Sie eine Subdomain namens sounds.yoursite.com und laden Sie alle Ihre MP3s von dort ... etc ..
Nginx bietet großartige Optionen zum direkten Bereitstellen statischer Dateien und zum Verwalten des Zwischenspeicherns statischer Dateien.
quelle
Erläuterung:
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 , bleibt die 7. Verbindung (z. B. ein Bild) hängen, bis sich einer der Sockets öffnet. Normalerweise wird eine offene Verbindung nach 5 Minuten Inaktivität geschlossen. Aus diesem Grund werden Ihre .pngs zu diesem Zeitpunkt endlich 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 sie zuletzt laden oder dass sie keine Attribute wie haben
preload="auto"
.Lösung 2:
Wenn Sie versuchen, mehrere Soundeffekte für ein Webspiel zu verwenden, können Sie die Web-Audio-API verwenden . Oder verwenden Sie zur Vereinfachung einfach eine Bibliothek wie SoundJS , ein großartiges Tool zum gleichzeitigen Abspielen einer großen Anzahl von Soundeffekten / Musiktiteln.
Lösung 3: Steckdosen mit Gewalt öffnen (nicht empfohlen)
Wenn Sie müssen, können Sie die Sockets in Ihrem Browser zwangsweise öffnen (nur in Chrome):
chrome://net-internals
.Sockets
aus dem Menü.Flush socket pools
Schaltfläche.Diese Lösung wird nicht empfohlen, da Sie nicht erwarten sollten, dass Ihre Besucher diese Anweisungen befolgen, um Ihre Website anzeigen zu können.
quelle
<video>
Elemente undDie Nachricht:
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:
Maximal pro Host: 6 Verbindungen.
Dies ist wahrscheinlich im Quellcode des Webbrowsers fest codiert, sodass Sie ihn nicht ändern können.
Insgesamt 256 HTTP-Verbindungen pro Browser zusammengefasst.
Quelle: Unternehmensnetzwerk für Chrome-Geräte
Die oben genannten Grenzwerte können überprüft oder gespült werden
chrome://net-internals/#sockets
(oder in Echtzeit umchrome://net-internals/#events&q=type:SOCKET%20is:active
).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: Proxy erreicht werden. Dies ist zum Zeitpunkt des Schreibens (2016) noch ein aktives Thema.
Ein viel älteres Problem im Zusammenhang mit HTML5- Videoanfragen steht noch aus , dann hängt es wahrscheinlich mit dem Problem Nr. 234779 zusammen, das 2014 behoben wurde. Und mit SPDY, das in Problem 324653 zu finden ist: SPDY-Problem: Warten auf verfügbare Sockets , dies wurde jedoch bereits behoben im Jahr 2014, also ist es wahrscheinlich nicht verwandt.
Ein anderes verwandtes Problem, das jetzt als doppelt markiert ist, ist in Problem 401845 zu finden: Fehler beim Vorladen von Audio-Metadaten. Es wurden nur 6 von 10+ geladen, was mit dem Problem mit dem Media Player-Code zusammenhängt und eine Reihe von angehaltenen Anfragen hinterlassen hat.
Dies kann auch mit einigen Chrome-Adware- oder Antiviren-Erweiterungen zusammenhängen, die Ihre Sockets im Hintergrund verwenden (z. B. Sophos oder Kaspersky ). Überprüfen Sie daher die Netzwerkaktivität in DevTools .
quelle
einfache und korrekte Lösung wird Ihre Audio- und Videodatei von Einstellung off Vorspannung setzen und erneut prüfen Ihrer Seite Ihr Problem nach verfügbaren Sockel des Wartens wird aufgelöst ...
wenn Sie jplayer dann ersetzen verwenden Vorbelastung: „Metadaten“ auf Vorbelastung: „none“ von jplayer JS-Datei ...
Preload: "Metadaten" ist der Standardwert, mit dem Ihre Audio- / Videodatei beim Laden der Seite abgespielt wird. Deshalb zeigt Google Chrome den Fehler "Warten auf verfügbaren Socket" an
quelle
Unser erster Gedanke ist, dass die Website nicht verfügbar ist oder dergleichen, aber die Wahrheit ist, dass dies nicht das Problem oder die Behinderung ist. Dies ist auch kein Problem, da eine einfache Verbindung beim Testen unter Firefox, Opera oder Services Explorer wie gewohnt geöffnet wird.
Der Fehler in Chrome zeigt ein Schild mit der Aufschrift "Diese Site ist nicht verfügbar" und eine Erläuterung mit der Legende "Fehler 15 (net :: ERR_SOCKET_NOT_CONNECTED): Unbekannter Fehler" an. Der Fehler ist in Google Chrome durchaus üblich, genauer gesagt in den Updates. Die 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 in Google Chrome normalerweise geöffnet sind, sollten Sie 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 "Flock Socket Pools" auswählen (siehe die folgenden Screenshots als Anleitung http://www.fixotip.com/how-to-fix-error-waiting-for -available-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 Mountain View-Riesen auf. Ich hoffe, Sie fanden es nützlich und teilen das Tutorial, mit dem sie oder soziale Netzwerke benötigen: Facebook, Twitter oder Google+.
quelle
Chrome ist ein Chromium-basierter Browser, und Chromium-basierte Browser erlauben jeweils nur maximal 6 offene Socket-Verbindungen. Wenn die 7. Verbindung gestartet wird, bleibt sie nur im Leerlauf und wartet, bis eine der 6 laufenden Verbindungen beendet wird Lauf. Daher der Fehlercode 'Warten auf verfügbare Sockets' , der 7. wartet darauf, dass einer dieser 6 Sockets verfügbar wird, und startet dann.
Du kannst entweder
quelle