У меня есть браузерная игра, и я недавно начал добавлять в нее звук.
Chrome не загружает всю страницу, зависает "91 requests | 8.1 MB transferred"
и больше не загружает контент; и он даже ломает сайт во всех остальных вкладках, мол Waiting for available socket
.
Через 5 минут (ровно) данные загружаются.
Этого не происходит ни в одном другом браузере.
Удаление одного MP3-файла (последнего добавленного) устранило проблему, возможно, это проблема ограничения данных?
sockets
google-chrome
http
networking
streaming
Фоксхаунд
источник
источник
Ответы:
Похоже, вы достигли предела количества подключений на сервере. Я вижу, что вы загружаете много статических файлов, и я советую разделить их на поддомены и, например, обслуживать их напрямую с помощью Nginx.
Создайте поддомен img.yoursite.com и загрузите оттуда все свои изображения.
Создайте поддомен с именем scripts.yourdomain.com и загрузите оттуда все свои файлы JS и CSS.
Создайте поддомен под названием sound.yoursite.com и загрузите оттуда все свои MP3 ... и т. Д.
Nginx имеет отличные возможности для прямого обслуживания статических файлов и управления кешированием статических файлов.
источник
Пояснение:
Эта проблема возникает из-за того, что Chrome по умолчанию разрешает до 6 открытых подключений. Поэтому, если вы одновременно транслируете несколько медиафайлов из 6
<video>
или<audio>
тегов, 7-е соединение (например, изображение) просто зависнет, пока не откроется один из сокетов. Обычно открытое соединение закрывается через 5 минут бездействия, и поэтому вы видите, что в этот момент наконец загружаются ваши .png-файлы.Решение 1:
Этого можно избежать, сведя к минимуму количество тегов мультимедиа, которые поддерживают открытое соединение. А если вам нужно их больше 6, убедитесь, что вы загружаете их последними или что у них нет таких атрибутов, как
preload="auto"
.Решение 2:
Если вы пытаетесь использовать несколько звуковых эффектов для веб-игры, вы можете использовать API веб-аудио . Или, чтобы упростить ситуацию, просто используйте библиотеку, такую как SoundJS , которая является отличным инструментом для одновременного воспроизведения большого количества звуковых эффектов / музыкальных треков.
Решение 3. Принудительно открыть розетки (не рекомендуется)
При необходимости вы можете принудительно открыть сокеты в своем браузере (только в Chrome):
chrome://net-internals
.Sockets
из меню.Flush socket pools
кнопке.Это решение не рекомендуется, потому что вы не должны ожидать, что посетители будут следовать этим инструкциям, чтобы просмотреть ваш сайт.
источник
<video>
элементов HTML5 иСообщение:
отображается, так как вы достигли предела ssl_socket_pool для каждого хоста, прокси или группы.
Вот максимальное количество HTTP-соединений, которое вы можете установить с помощью браузера Chrome:
Максимум на хост: 6 подключений.
Вероятно, это жестко запрограммировано в исходном коде веб-браузера, поэтому вы не можете его изменить.
Всего 256 HTTP-соединений для каждого браузера.
Источник: корпоративные сети для устройств Chrome.
Вышеуказанные пределы можно проверить или сбросить
chrome://net-internals/#sockets
(или в режиме реального времениchrome://net-internals/#events&q=type:SOCKET%20is:active
).Ваша проблема со звуком может быть связана с ошибкой Chrome 162627, когда звук HTML5 не загружается и достигает максимального количества одновременных подключений на сервер: прокси. Это все еще активная проблема на момент написания (2016 г.).
Гораздо более старая проблема, связанная с запросом видео HTML5, остается в ожидании , тогда она, вероятно, связана с проблемой № 234779, которая была исправлена в 2014 году. И связана с SPDY, которую можно найти в проблеме 324653: проблема SPDY: ожидание доступных сокетов , но это уже было исправлено в 2014 году, так что, вероятно, это не связано.
Другая связанная проблема, теперь отмеченная как повторяющаяся, может быть найдена в проблеме 401845: Ошибка предварительной загрузки метаданных аудио. Загрузили только 6 из 10+, что было связано с проблемой с кодом медиаплеера, оставившей кучу приостановленных запросов.
Это также может быть связано с некоторыми рекламными программами Chrome или антивирусными расширениями, использующими ваши сокеты в фоновом режиме (например, Sophos или Kaspersky ), поэтому проверьте сетевую активность в DevTools .
источник
простое и правильное решение - отложить предварительную загрузку аудио- и видеофайлов из настройки и перепроверить свою страницу, ваша проблема ожидания доступного сокета будет решена ...
если вы используете jplayer, замените preload : "metadata" на preload: "none" из jplayer JS файл ...
preload: "метаданные" - это значение по умолчанию, которое воспроизводит ваш аудио / видео файл при загрузке страницы, поэтому в Google Chrome отображается ошибка "ожидание доступного сокета"
источник
Наша первая мысль заключается в том, что сайт не работает или что-то подобное, но правда в том, что проблема не в этом или нетрудоспособность. Это также не проблема, потому что простое соединение при тестировании в Firefox, Opera или Services Explorer открывается как обычно.
Ошибка в Chrome отображает значок с надписью «Этот сайт недоступен» и пояснение с легендой «Ошибка 15 (net :: ERR_SOCKET_NOT_CONNECTED): Неизвестная ошибка». Ошибка довольно обычна в Google Chrome, точнее в его обновлениях, и ее временное решение - перезагрузить компьютер.
Поскольку частичных решений не так уж много, мы предлагаем вам руководство по устранению неисправности менее чем за минуту. Чтобы избежать этой проблемы и убедиться, что службы в Google Chrome обычно открываются, следует вставить в адресную строку следующее: chrome: // net-internals (затем дать «Enter»). Затем им нужно перейти к «Socket» в левом меню и выбрать «Flush Socket Pools» (см. Следующие снимки экрана, чтобы руководствоваться http://www.fixotip.com/how-to-fix-error-waiting-for -available-sockets-in-google-chrome / ) Проблема решена, и больше не возникнет проблем с доступом к Gmail, Google или любым службам гиганта Маунтин-Вью. Надеюсь, вы сочли это полезным и поделитесь учебником с тем, кому они нужны, или в социальных сетях: Facebook, Twitter или Google+.
источник
Chrome - это браузер на основе Chromium, а браузеры на основе Chromium допускают одновременно не более 6 открытых соединений сокетов, когда запускается 7-е соединение, оно просто будет бездействовать и ждать остановки одного из 6 работающих, а затем начать бежать. Следовательно, код ошибки «ожидание доступных сокетов» , 7-й будет ждать, пока один из этих 6 сокетов станет доступным, и затем он начнет работать.
Вы также можете
источник