채팅을 지원하는 멀티 플레이어 웹 게임 응용 프로그램을 만들고 싶습니다. 나는 응용 프로그램이 수백 개의 동시 연결을 처리해야한다고 생각합니다.혜성 지원이있는 Apache
나는 (대부분 비슷한 PHP + Comet (long-polling) scaling/hosts에) 이러한 제한이 공유 웹 호스팅, 내 응용 프로그램을 호스팅 할 계획입니다 :
- 은 내가 웹 서버를 변경할 수 있습니다하지 않는 것 같습니다. 대부분 아파치를 사용하고있을 가능성이 큽니다.
- MySQL을 5, PHP의 5.3.x, 펄, 파이썬, 루비 온 레일즈, CGI 지원
여기
과을 (내가 HawkHost의 공유 웹 호스팅을 사용할 것입니다. 더 정확하게하려면) 내 내 질문에 다음 연구의 결과입니다
- 일부 자원 (같은 Python Comet Server)는 파이썬이 더 나은 선택 인 반면 PHP는, 동시 연결을 처리하기위한 좋은 아니라고 말한다. 사실입니까?
- "데이터가 변경 될 때까지 반복적으로 루프"를 사용하여 PHP에서 긴 폴링 기법을 시도했습니다 (올바르게 구현되었는지 여부는 알 수 없지만 Comet issue with abandoned open connections과 같이). 방법. 이 은 거의 작동입니다. 나머지 문제는 브라우저가 닫힐 때 서버 프로세스가 종료되지 않는다는 것입니다 (서버는 연결이 종료되었음을 알지 못하며 데이터는 절대로 변경되지 않습니다). PHP가 브라우저가 종료되었는지 여부를 감지하여 루프를 중지시킬 수있는 방법이 있습니까?
나는 답을 찾기 위해 모든 곳을 찾고 있었지만 여전히 결론을 내릴 수는 없습니다. 이 주제는 StackOverflow에서 여러 번 묻습니다. 반복해서 들리면 유감입니다. <.
현재 JS 용 PHP, MySQL 및 JQuery를 사용하여 코딩 할 수 있습니다. 나는 여전히 Comet and Server Push라는 용어에 익숙하지 않다. 필요한 경우 Python과 같은 새로운 스크립팅 언어를 배우려합니다.
내 프로젝트를 시작하는 데 사용할 스크립팅 언어, 프레임 워크 및 기술에 대한 통찰력에 감사드립니다.
나는 이전과 같은 것을 궁금해하고있었습니다. 문제는 PHP가 아니라 Apache라고 생각합니다. Lighttpd는 아파치보다 혜성에서 훨씬 잘 작동합니다. 검색 stackoverflow, 그것에 대해 몇 가지 좋은 토론이 있습니다. 예 : http://stackoverflow.com/questions/603201/using-comet-with-php – ZolaKt
StackOverflow에서이 스레드와 많은 관련 스레드를 발견했습니다. 문제는 공유 웹 호스팅 내에서 아파치로 제한됩니다. 그래서 위의 조건을 고려할 때 얻을 수있는 최선의 해결책을 찾고 있습니다. 어쩌면 성능을 약간 높이기 위해 Perl이나 Python을 사용할 수 있습니다. 그러나 어쨌든, 빠른 응답을 주셔서 감사합니다. @ ZolaKt : D – Arkross
나는 당신이 찾고있는 것이 아니라, 일반적으로 긴 폴링없이 그것을 할 수 있다고 알고 있습니다. 데이터베이스의 유무에 관계없이 데이터베이스를 주기적으로 검사해야하는 경우 병목 현상이 발생합니다. 긴 폴링으로 얻을 수있는 것은 요청 수가 적어 성능이 떨어지지만 여전히 db 쿼리가 요청하는 것보다 시간이 오래 걸리면 (아마도 항상 ... 일부는 벤치마킹은 좋지만 유용하지 않은 것을 찾았습니다.) – ZolaKt