Chrome зависает после определенного количества переданных данных-в ожидании доступного сокета


у меня есть браузерная игра, и я недавно начал добавлять звук в игре.

Chrome не загружает всю страницу и застревает на "91 requests | 8.1 MB transferred" и больше не загружает контент и даже тормозит сайт во всех других вкладках, говоря Waiting for available socket.

через 5 минут (точно) данные загружаются.

это не происходит ни в одном другом браузере.

удаление одного MP3-файла (последний добавленный) исправлено проблема, поэтому я думаю, что это проблема ограничения данных?

5 89

5 ответов:

Похоже, вы достигаете предела подключений на сервер. Я вижу, что вы загружаете много статических файлов, и мой совет-разделить их на поддомены и обслуживать их непосредственно с помощью Nginx, например.

  • создать поддомен с именем img.yoursite.com и загрузить все ваши изображения оттуда.

  • создать поддомен с именем scripts.yourdomain.com и загрузить все ваши JS и CSS файлы из там.

  • создать поддомен с именем sounds.yoursite.com и загрузите все ваши MP3 оттуда... так далее..

Nginx имеет отличные возможности для непосредственного обслуживания статических файлов и управления кэшированием статических файлов.

объяснение:

эта проблема возникает, потому что Chrome позволяет до 6 открытых соединений по умолчанию. Так, например, если вы потоковое несколько мультимедийных файлов одновременно с 6 <video> или <audio> теги, 7-е соединение (например, изображение) будет просто висеть, пока не откроется один из сокетов. Обычно открытое соединение закрывается после 5 минут бездействия, и именно поэтому вы видите, что ваши png наконец загружаются точка.

Решение 1:

вы можете избежать этого, минимизировав количество тегов мультимедиа, которые поддерживают открытое соединение. И если вам нужно иметь более 6, убедитесь, что вы загружаете их последними или что у них нет атрибутов, таких как preload="auto".

решение 2:

если вы пытаетесь использовать несколько звуковых эффектов для веб-игры, я настоятельно рекомендую вам использовать SoundJS это отличный инструмент для игры в большой количество звуковых эффектов / музыкальных треков одновременно.

решение 3: принудительно открыть сокеты (не рекомендуется)

если вы должны, вы можете принудительно открыть сокеты в вашем браузере (только в Chrome):

  1. перейдите в адресную строку и введите chrome://net-internals.
  2. в раскрывающемся меню выберите Sockets.
  3. нажмите на кнопку .

это решение не рекомендуется, потому что вы не должны ожидать ваши посетители должны следовать этим инструкциям, чтобы иметь возможность просматривать ваш сайт.

сообщение:

ожидание доступного сокета...

показано, потому что вы достигли предела на ssl_socket_pool либо на хост, прокси или группу.

вот максимальное количество HTTP-соединений, которые вы можете сделать с браузером Chrome:

  • максимальное число подключений на прокси-сервер составляет 32 подключения. Это можно изменить в Список Политика.
  • максимум на Ведущий: 6 подключений.

    это, вероятно, жестко закодировано в исходном коде веб-браузера, поэтому вы не можете его изменить.

  • всего 256 HTTP-соединений в пуле для каждого браузера.

источник: корпоративная сеть для устройств Chrome

вышеуказанные пределы можно проверить или потопить на chrome://net-internals/#sockets (или в режиме реального времени chrome://net-internals/#events&q=type:SOCKET%20is:active).


ваша проблема со звуком может быть связана с Chrome bug 162627 где HTML5 аудио не загружается, и он поражает максимальное одновременное подключение на сервер:Прокси. Это все еще активный вопрос на момент написания (2016).

гораздо более старая проблема, связанная с HTML5 Видео запрос остается в ожидании, то это, вероятно, связано с выпуск №234779 который был исправлен в 2014 году. И связанные с SPDY, которые можно найти в проблема 324653: проблема SPDY: ожидание доступных сокетов, но это уже была зафиксирована в 2014 году, так что, вероятно, это не связано.

другая связанная с этим проблема теперь отмечена как дубликат можно найти в проблема 401845: сбой предварительной загрузки аудио метаданных. Загружается только 6 из 10+ что было связано с проблемой с кодом медиаплеера, оставляя кучу приостановленных запросов, висящих вокруг.


Это также может быть связано с некоторыми Chrome adware или антивирусных расширений с помощью сокетов в фоновом режиме (например антивирус или Касперский), так что проверьте сеть деятельность в DevTools.

простое и правильное решение откладывается предварительная загрузка вашего аудио и видео файла из настройки и перепроверка вашей страницы ваша проблема ожидания доступного сокета будет решена ...

если вы используете jplayer, то замените предварительная загрузка: "метаданные" до предварительная загрузка:"нет" из файла jplayer на JS ...

предварительная загрузка: "метаданные" это значение по умолчанию, которое воспроизводит ваш аудио / видео файл на странице загрузки вот почему google chrome показывает " ожидание доступно сокет " ошибка

наша первая мысль заключается в том, что сайт не работает или тому подобное, но правда в том, что это не проблема или инвалидность. И это не проблема, потому что простое соединение при тестировании в Firefox, Opera или Services Explorer открывается как обычно.

ошибка в Chrome отображает знак, который говорит "Этот сайт недоступен "и уточнение с легендой"ошибка 15 (net :: ERR_SOCKET_NOT_CONNECTED): неизвестная ошибка". Ошибка вполне обычная в Google Chrome, точнее в его обновления, и его следует перезапустить компьютер.

как частичные решения не так много мы предлагаем учебник для вас решить проблему менее чем за минуту. Чтобы избежать этой проблемы и убедиться, что службы обычно открыты в Google Chrome, необходимо вставить в адресную строку следующее: chrome: // net-internals (затем дайте "Enter"). Затем они должны перейти к "сокету" в левом меню и выбрать "Flush Socket Pools" (смотрите следующие скриншоты для руководства http://www.fixotip.com/how-to-fix-error-waiting-for-available-sockets-in-google-chrome/) Это имеет проблему решена и больше не будет испытывать проблем с доступом к Gmail, Google или любой из услуг Mountain View giant. Я надеюсь, что вы нашли это полезным и поделиться учебник с кем они нуждаются или социальные сети: Facebook, Twitter или Google+.