친구와 저는 웹 기반의 AJAX 채팅 소프트웨어를 jQuery와 PHP 코어로 구축하고 있습니다. 지금까지 2 초마다 서버를 호출하거나 업데이트를 찾는 표준 절차를 사용했습니다. 그러나 나는이 방법을 싫어하기 때문에 빠른 것이 아니며, 데이터가 반환되지 않더라도 서버에서 앞뒤로 반복되는 요청이 많아서 "비용 효율적"이라고 할 수 없습니다.Ajax Long Polling Restrictions
프로젝트 지지자 중 한 명이 COMET이라고하는 기술, 구체적으로 Long Polling을 조사하는 것이 좋습니다. 그러나 다른 기사 및 블로그 게시물에서 그것에 대해 읽은 후에, 나는 아파치 서버와 함께 사용하는 것이 실용적이지 않다는 것을 발견했다. 대부분의 사람들은 "좋은 생각이 아닙니다"라고 말하지만 아파치가 한 번에 처리 할 수있는 요청의 양과 관련하여 구체적인 방법을별로주지는 않습니다.
PureChat의 모든 목적은 사람들에게 멋지게 보이고 빠르게 가고 대부분의 서버에서 작동하는 채팅을 제공하는 것입니다. 따라서 우리는 약 96 %의 사용자가 Lighttpd 또는 Nginx가 아닌 Apache를 사용하고 있다고 가정하고 있습니다. Lighttpd 또는 Nginx는 긴 폴링에 더 적합합니다.
포인트에 도착 : 당신의 의견에
를, 그것은 setInterval을 계속 사용하고 반복적으로 새로운 데이터를 요청하는 것이 좋습니다? 또는 대부분의 사용자가 Apache를 사용한다는 사실에도 불구하고 Long Polling을 사용하는 것이 좋습니다. 또한 Apache 서버가 롤오버되고 죽기 전에 얼마나 많은 사람들이 채팅을 사용할 수 있는지에 대한 구체적인 설명을 얻을 수 있습니까?
Tomcat 7에는 WebSocket에 대한 최신 지원이 추가되어 있으므로 폴링 대체를 다른 대안으로 고려하십시오. – Andrew
작은 규모 인 경우 문제가되지 않습니다. 1000 명 이상의 동시 사용자를 계획 중이라면 각 연결마다 새 스레드가 열리기 때문에 Apache는 죽습니다. 이는 많은 양의 메모리를 필요로합니다. NginX는 단일 스레드에서 실행되므로 많은 연결로 확장 할 수 있습니다. 그러나 PHP를 사용하고 있다면 많은 경우 생각만큼 도움이되지 않습니다. 자세한 내용은 내 아래 답변을 참조하십시오. – dqhendricks