2016-12-02 10 views
0

나는 PHP, 자바 스크립트 및 jQuery로 프로그래밍 된 CRM을 가지고있다. 우리는 또한 voip을위한 XMPP와 http-bind를 가지고 있습니다.HTTP 바인딩 6000ms

내 문제는 : CRM을로드 할 때 첫 번째 몇 개의 http-binds는 보통 시간 (< 50ms)이 걸리고 이후에는 항상 약 6000ms가 걸립니다.

이 코드는 여러 파일로 분할되어 있으며 많은 수입니다. 추가 할 코드 부분을 알 수는 없으므로 지금 당장 코드를 생략하고 필요할 경우 부분을 추가 할 것입니다.

나는 http 바인딩 및 XMPP에 상당히 익숙하며 아직 도움이되는 정보를 찾지 못해 슬픈 정보 나 도움을 주셔서 감사합니다.

로그인 : 사전에 LOG

감사합니다! 정보를 제공

답변

3

세 가지 사실 :

  1. 파이어 폭스 기본적으로 서버 당 8 개 연결의 최대를하는 데 사용됩니다. 이것은 구성 가능하지만 변경할 경우 신중해야합니다. http://kb.mozillazine.org/Network.http.max-connections-per-server. (참고 : 최대 15 개의 영구 연결이 있다고 생각하지만 최신 Firefox 또는 dev 플러그인을 사용하고있는 것처럼 보이지 않습니까?)

  2. 기본적으로 영구 연결 (즉, 남아있는 서버에 대한 연결 열려 있고 재사용 가능 - https://en.wikipedia.org/wiki/HTTP_persistent_connection 참조)은 닫히기 전에 60 초 동안 열린 상태로 있습니다.

  3. 브라우저는 8 회의 동시 호출을 수행 한 후 다음 호출보다 60 초 앞당겨 대기합니다.

    1. 브라우저 8 개 parellel 요청 (최대) 8 개 연결 및 차종 (최대)를 엽니 다 : 발생한다 무엇

    .

  4. 요청에 응답하면 브라우저는 동일한 연결을 다시 사용합니다.
  5. 실패하면 연결을 유지하도록 서버에 알려주기 위해 "연결 유지"가 실행됩니다.
  6. 연결이 X 초 동안 사용되지 않고 (X는 서버에 따라 다름) 연결 유지가 수신되지 않으면 서버는 연결을 닫습니다.

단계 (2)가 실패하면 브라우저가 동일한 연결을 다시 사용하지 않습니다. 그런 다음 8 개의 연결이 열린 상태에서 9 번째 전화를 걸 수 없습니다.

브라우저가 연결을 다시 사용하지 못하고 "keep-alives"를 최대 60 초 동안 보내고 중지합니다 거대한 인 (연결을 닫습니다) 또는 브라우저는 연결을 종료하는 데 실패하고 서버는 60 초 시간 제한에 대해 구성된!)

솔루션

  1. 나는 그것이 가능성의 추정 해당 브라우저와 서버 깨졌거나 잘못 설정되어 있고 Firebug의 이전 버전을 사용하고있는 것처럼 보입니다 (o 일부 복제 또는 다른 브라우저에 대한 플러그인) 시작 거기?테스트를 위해, 모두 브라우저 및 디버깅 툴을 변경

    • 방화범이 경우이는 더 그래서 당신이 파이어 폭스의 개발 도구를에 빌드 (하지만 실패 할 경우, 완전히 다른 브라우저를 시도 을 사용하기 시작한다 개발되지 않는)

    • Chrome 또는 Edge의 경우 내장 도구를 사용하십시오.

    • 또는 Fiddler (windows) 또는 Charles (Mac)를 사용하십시오. 그러나 여전히 다른 브라우저를 사용해보십시오.

  2. 당신은 대체 연결 유지 (keep-alive)를/영구 연결을 해제하고 서버가 < 60초 시간 초과에 대해 구성되어 있는지 확인하는 것. 조금 더 복잡하기 때문에 브라우저 및 디버그 도구로 시작하십시오.

+0

감사 인사가 많이 도움 – jogoe