은 일반적으로 Ajax를 통해 페이지의 콘텐츠를 업데이 트 타이머를 사용하여 적어도 강력한 혜성 같은 수명이 긴 스트림 연결에 의존 등이다. 방화벽, 짧은 DHCP 임대 등은 모두 영구 연결을 중단 할 수 있지만 폴링은 각 요청에 대해 클라이언트 연결을 다시 설정합니다.
폴링은 종종 서버에서 더 많은 리소스를 필요로한다는 단점이 있습니다. 10 초마다 업데이트를 폴링하는 소수의 고객조차도 일반 대화 형 사용자보다 서버에 더 많은 부하를 가할 수 있습니다. 몇 분마다 새 페이지를로드 할 가능성이 높으며 다른 사이트로 이동하기 전에 시간을 절약 할 수 있습니다 . 하나의 데이터 포인트로서 작년에 썼던 간단한 Sinatra/Ajax 장난감 응용 프로그램은 일반적인 "텍스트"페이지에 하루에 3-5 명의 순 방문자가 있었지만 Ajax 콜백 URL은 서버의 모든 사이트에서 가장 많이 요청 된 부분이되었습니다 (또는 그 이상) 더 높은 트래픽의 순서를 가진 여러 사이트를 포함합니다.
폴링으로 인한로드를 최소화하는 한 가지 방법은 가능한 경우 Ajax 콜백 서버 코드를 일반 사이트 코드에서 분리하여 자체 응용 프로그램 서버 프로세스에서 실행하는 것입니다. 이 "서비스 미들웨어"서비스는 서버 스레드/Apache 리스너/etc를 포기하기보다는 폴링 콜백을 처리 할 수 있습니다. 효과적으로 "우리는 아직 거기에 있습니까?"
당연히 한 번에 설문 조사 서비스를 사용하는 사용자의 수가 적을 것으로 예상되는 경우 (10 세 이하) 동일한 서버 프로세스에서 계속 실행하십시오.
감사합니다. 나는 분명히 10 명 이상의 사용자를 계획 할 필요가있다. 새 응용 프로그램 서버 프로세스를 설정하는 방법을 배우기 시작할 때 어떤 권장 사항이 있습니까? – Brian
그냥 응용 프로그램 스택의 다른 인스턴스를 배포하는 것입니다.예를 들어 Apache에서 PHP를 실행하는 경우 Ajax 요청만을 제공하는 가상 호스트에 대해 별도의 docroot를 사용하고 나머지 응용 프로그램 코드는로드하지 않습니다. Java 응용 프로그램의 경우 콜백 만 처리하는 독립형 서블릿을 사용하십시오. Ajax 처리기의 공간을 최소화하십시오. 그러면 서버 자원을 훨씬 늘릴 수 있습니다. – rcoder
오 ~ 고맙습니다. 대단히 감사합니다. 매우 도움이됩니다. – Brian