나는 긴 XMLHttpRequest 설문 조사를 통해 프레임 워크에 대해 Comet support을 작업 중입니다. 대부분의 경우 서버로부터의 응답이 제공되기 전에 클라이언트에 의해 이러한 요청이 닫힙니다. 예를 들어 페이지가 닫히고 사용자가 다른 페이지로 이동하거나 다시 페이지가 다시 전달되는 경우입니다.클라이언트가 연결을 끊었을 때 HTTP 프록시/FastCGI/SCGI가 연결을 닫지 않습니다 - 버그 또는 기능?
서버 측에서는 연결이 끊어 졌다는 알림을 받게 될 것으로 예상됩니다. FastCGI, SCGI 및 간단한 HTTP 프록시와 같은 3 개의 커넥터를 통해 응용 프로그램을 테스트했습니다.
3 개의 주요 UNIX 웹 서버 인 Apache2, lighttpd 및 Nginx에서 마지막 응용 프로그램 만이 연결을 예상대로 닫지 않아 대기열에서 요청을 제거 할 수있었습니다. 이는 FastCGI 및 HTTP 프록시 커넥터 모두에서 작동했습니다. (Nginx에는 기본적으로 scgi 모듈이 없습니다).
기타 Apache 및 Lighttpd는 연결이 끊어 지거나 연결이 끊어지지 않은 경우 백엔드에 알리지 않고 클라이언트가 계속 온라인 상태 인 것처럼 진행합니다. 이는 FastCGI, SCGI 및 HTTP 프록시와 같이 지원되는 3 가지 API 모두에서 발생합니다.
나는 Lighttpd에 대한 문제를 열었다하지만, 나 사실은 무엇을 더 conserns입니다 아파치 - 성숙하고 잘 지원 웹 서버 lighttpd를 로와 클라이언트가 갔던 서버 백엔드를 개시하지 않습니다.
질문 :
- 이 버그인가, 아니면이 특징이다? 웹 서버와 응용 프로그램 백엔드 사이의 연결을 닫지 않을 이유가 있습니까?
- FastCGI/SCGI/HTTP-Proxy 백엔드를 통해 이러한 서버에서 작동하는 실제 Comet 응용 프로그램이 있습니까?
- 위의 내용이 사실이라면 어떻게이 문제를 해결할 수 있습니까? 10 초마다 모든 연결을 시간 초과 할 수 있음을 이해합니다. 그러나 클라이언트가 청취하는 한 유휴 상태로 유지하고 싶습니다. 이는 더 쉬운 확장을 허용하기 때문에 각 연결은 매우 능숙합니다. 비용은 보류 된 소켓에 불과합니다.
고마워요!
, 만 5 개 태그 최대가 될 수 있습니다
이 페이지의 두 번째 패치는 특정 문제를 해결해야한다 새로운 'cppcms'태그를 사용하여 기존 태그 5 개 중 어느 태그를 삭제할 수 있는지 결정하십시오. cppcms에 직접 영향을 줄 수있는 SO 질문을하는 것이 좋을 것입니다. +1. – augustin