일정량의 데이터가 전송 된 후 Chrome이 중단됨-사용 가능한 소켓을 기다리는 중


101

브라우저 게임이 있고 최근에 게임에 오디오를 추가하기 시작했습니다.

Chrome은 전체 페이지를로드하지 않고 중단되고 "91 requests | 8.1 MB transferred"더 이상 콘텐츠를로드하지 않습니다. 그리고 다른 모든 탭에서 웹 사이트를 깰 수도 있습니다 Waiting for available socket.

5 분 (정확히) 후에 데이터가로드됩니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

다른 브라우저에서는 발생하지 않습니다.

하나의 MP3 파일 (최근에 추가 된 파일)을 제거하면 문제가 해결되었으므로 데이터 제한 문제일까요?


1
이에 대한 버그 보고서를 제출했거나 찾았습니까? 정확히 동일한 동작을보고 있습니다 (요청 또는 전송 된 바이트 수가 일치하는지 확인해야하지만 그렇지 않으면 동작 및 오류가 정확히 일치하는지 확인해야 함)
Jan

1
알려진 문제인 것 같습니다. code.google.com/p/chromium/issues/detail?id=324653을 참조하세요 . 정확히 무슨 일이 일어나는지 code.google.com/p/chromium/issues/detail?id=324653을 살펴보세요 . 그러나 열린 소켓의 제한에 도달하면 실제로 다른 브라우저에서도 단일 도메인에 대한 연결 수에 제한이 있습니다. 두 가지 옵션이 있습니다. 활성화 된 동시 요청이 거의 없는지 확인하십시오 (일련 화하고 병렬화하지 마십시오). 또는 서버를 하위 도메인으로 분할하고 다른 하위 도메인에 요청을 보냅니다.

5
틈새 사례이지만 최근에 Chrome을 다시 시작하고 기본 HTTP 인증이 필요한 서버에 여러 탭이 열려있는 경우 백그라운드 탭 중 하나가 인증 대화 상자를 표시했기 때문에 이러한 오류가 발생할 수 있습니다. 해당 사이트에 대해 열려있는 다른 모든 탭을 확인하고 필요에 따라 로그인 한 다음 문제가 해결되었는지 확인합니다.
Nathaniel Heinrichs

스크린 샷에서 제공 한이 데이터를 추적하는 확장이 무엇인지 아는 사람이 있습니까?
AlexioVay

2
@NathanielHeinrichs는 지난 2 주 동안 저를 괴롭힌 "틈새 사건"에 +1했습니다. 그것은 나에게 정확히 무슨 일이 일어나고 있는지, 이제 나는 그 이유를 압니다! 감사.
마커스

답변:


68

서버 당 연결 한도에 도달 한 것 같습니다. 많은 정적 파일을로드하고있는 것으로 보이며 예를 들어 하위 도메인에서 파일을 분리하고 Nginx에서 직접 제공하는 것이 좋습니다.

  • img.yoursite.com 이라는 하위 도메인을 만들고 여기에서 모든 이미지를로드합니다.

  • scripts.yourdomain.com 이라는 하위 도메인을 만듭니다 . 만들고 거기에서 모든 JS 및 CSS 파일을로드합니다.

  • sounds.yoursite.com 이라는 하위 도메인을 만들고 거기에서 모든 MP3를로드합니다.

Nginx에는 정적 파일을 직접 제공하고 정적 파일 캐싱을 관리하기위한 훌륭한 옵션이 있습니다.


11
이것은 아무것도 변경하지 않습니다. 호스트 파일에 가짜 도메인을 넣고 localhost 대신 사용하십시오.
Predte4a

나를위한 옵션이 아닙니다. 웹을 통해 홈 서버의 비디오를 제공하려고합니다 (직장에있을 때).
Sridhar Sarnobat 2016

4
httpd (예 : 아파치)가 수백 개의 시뮬레이션을 처리 할 수있는 경우. 연결 및 Crome이 제한하고 있습니다. 이것은 해결책이 아닙니다. 제 경우에는 프로필 당 6 개의 소켓이므로 익명 프로필 등에서 6 개를 더 열 수 있습니다. 이것은 최고의 답변으로 받아 들여질 수 있는 솔루션입니다. stackoverflow.com/a/29639535/904846 입니다.
dmnc

145

설명:

이 문제는 Chrome이 기본적으로 최대 6 개의 열린 연결을 허용하기 때문에 발생합니다. 따라서 6 개 <video>또는 여러 미디어 파일을 동시에 스트리밍하는 경우<audio> 태그 경우 소켓 중 하나가 열릴 때까지 7 번째 연결 (예 : 이미지)이 중단됩니다. 일반적으로 열려있는 연결은 5 분 동안 활동이 없으면 닫히므로 .png가 해당 지점에서 마침내로드되는 것을 볼 수 있습니다.

해결책 1 :

열린 연결을 유지하는 미디어 태그의 수를 최소화하여이를 방지 할 수 있습니다. 그리고 6 개 이상이 필요한 경우 마지막에로드했는지 또는 같은 속성이 없는지 확인하십시오 preload="auto".

해결책 2 :

웹 게임에 여러 음향 효과를 사용하려는 경우 Web Audio API를 사용할 수 있습니다 . 또는 간단하게하려면 SoundJS 와 같은 라이브러리를 사용하세요.이 라이브러리 는 많은 양의 음향 효과 / 음악 트랙을 동시에 재생하는 데 유용한 도구입니다.

해결 방법 3 : 소켓 강제 개방 (권장되지 않음)

필요한 경우 브라우저에서 소켓을 강제로 열 수 있습니다 (Chrome에만 해당).

  1. 주소 표시 줄로 이동하여을 입력 chrome://net-internals합니다.
  2. 메뉴 Sockets에서 선택하십시오 .
  3. 버튼을 클릭하십시오 Flush socket pools.

방문자가 사이트를 볼 수 있도록 이러한 지침을 따르지 않을 것으로 기 대해서는 안되므로이 솔루션은 권장되지 않습니다.


13
수락 된 답변은 일반적으로 좋은 정보를 제공했지만 이것이 가장 좋은 답변입니다.
taco

1
방금 Neo4J 3.0.4를 설치하고 localhost : 7474 를 열면 사용 가능한 소켓을 기다리는 중이라고 표시되고 플러시 시도는 여전히 작동하지 않으며 풀 목록에이 사이트에 대해 6 개 활성 및 2 개 보류
중이라고 표시

플러싱 소켓 풀이 나에게도 작동하지 않습니다 (여러 HTML5 <video>요소 의 작은 조각을 재생 하고 한계에 도달했습니다.
Sridhar Sarnobat 2016

제 경우에는 많은 탭이 열려 있고 서버에 폴링하고 모든 탭을 닫았으며 이제는 좋습니다.
igaurav

우리의 레거시 응용 프로그램은 공개 서버에서 이미지 (zoom in / out.png 등)를 요청했습니다 (지원을 중단해야 함-많은 오류보고로 이어짐). 해당 서버에 대한 모든 요청은 Chrome에서 '보류 중'으로 멈췄으며 약 2 분 후에 HTTP 상태 코드 502 만 다시 전송됩니다. 이로 인해 응용 프로그램이 중단되고 이러한 이미지 요청이 막혀서 자체 서버에서 이미지를 요청할 수 없습니다. 훌륭한 답변-이 문제를 추적하는 데 도움이되었습니다!
Francis Dean

13

메시지 :

사용 가능한 소켓을 기다리는 중 ...

호스트, 프록시 또는 그룹별로 ssl_socket_pool의 한도에 도달했기 때문에이 표시됩니다.

다음은 Chrome 브라우저로 만들 수있는 최대 HTTP 연결 수입니다.

  • 프록시 당 최대 연결 수는 32 개입니다. 정책 목록 에서 변경할 수 있습니다 .
  • 호스트 당 최대 : 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 관련되어있는 SPDY 문제 : 문제 324653를 사용할 수 소켓을 기다리고 있지만, 이것은 이미 고정 2014 년에는 아마 관련이 없을 것입니다.

이제 중복으로 표시된 기타 관련 문제는 문제 401845 : 오디오 메타 데이터 미리로드 실패 에서 찾을 수 있습니다 . 미디어 플레이어 코드 문제와 관련된 10 개 이상6 개만로드 되어 일시 중지 된 요청이 많이 남아 있습니다.


이는 또한 백그라운드에서 소켓을 사용하는 일부 Chrome 애드웨어 또는 바이러스 백신 확장 (예 : Sophos 또는 Kaspersky )과 관련이있을 수 있으므로 DevTools 에서 네트워크 활동을 확인하세요 .


1
내가 보류 2 개 숙박을 결과 필요 8 사이트를 사용하고 일부 소프트웨어가로드되지 않습니다 보인다 내가 어떻게 서버 당 8 서버 당 6을 변경할 수 있습니다
아데 엠

@Adeem 나는 당신이 그것을 바꿀 수 있다고 생각하지 않는다. 나는 그것이 소스 코드에 하드 코딩되어 있다고 믿는다. 특정 시나리오를 설명 하는 문제보고 할 수 있습니다 .
kenorb

1
chrome : // net-internals / # events & q = type : SOCKET % 20is : 최신 Chrome에서 활성 링크가 최신 상태가 아닙니다
pyrytakala

6

간단하고 올바른 해결책은 설정에서 오디오 및 비디오 파일을 미리로드하고 페이지를 다시 확인하는 것입니다. 사용 가능한 소켓을 기다리는 문제가 해결 될 것입니다.

jplayer를 사용하는 경우 preload : "metadata" 를 jplayer에서 preload : "none" 으로 교체하십시오. JS 파일 ...

preload : "metadata" 는 페이지로드시 오디오 / 비디오 파일을 재생하는 기본값이므로 Google 크롬에 "사용 가능한 소켓 대기 중"오류가 표시됩니다.


0

우리의 첫 번째 생각은 사이트가 다운되었거나 비슷한 것이지만 진실은 이것이 문제 나 장애가 아니라는 것입니다. Firefox, Opera 또는 서비스 탐색기에서 테스트 할 때 간단한 연결이 정상적으로 열리기 때문에 문제가되지 않습니다.

Chrome의 오류는 "이 사이트를 사용할 수 없습니다."라는 기호와 "오류 15 (net :: ERR_SOCKET_NOT_CONNECTED) : 알 수없는 오류"라는 범례와 함께 설명을 표시합니다. 이 오류는 Google 크롬, 더 정확하게는 업데이트에서 매우 일반적이며 해결 방법은 컴퓨터를 다시 시작하는 것입니다.

부분 솔루션이 많지 않기 때문에 1 분 이내에 결함을 해결할 수있는 튜토리얼을 제공합니다. 이 문제를 방지하고 Google 크롬에서 서비스가 정상적으로 열려 있는지 확인하려면 검색 주소창에 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 또는 Mountain View 거인의 서비스에 액세스하는 데 문제가 발생하지 않습니다. 도움이 되었기를 바라며 Facebook, Twitter 또는 Google+와 같은 소셜 네트워크 또는 필요한 사람과 튜토리얼을 공유하시기 바랍니다.


0

Chrome은 Chromium 기반 브라우저이며 Chromium 기반 브라우저는 한 번에 최대 6 개의 열린 소켓 연결 만 허용합니다. 7 번째 연결이 시작되면 유휴 상태로 유지되고 실행중인 6 개 중 하나가 중지 될 때까지 기다린 다음 실행됩니다. 실행을 시작하십시오. 따라서 '사용 가능한 소켓을 기다리는 중' 오류 코드 , 7 번째 소켓은 6 개의 소켓 중 하나가 사용 가능해질 때까지 기다린 다음 실행을 시작합니다.

당신은

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.