2009-12-01 6 views
1

저는 페이스 북 채팅이나 구글 토크 같은 일을 할 수있는 애플리케이션을위한 웹 기반 채팅 기능을 디자인하고 있습니다. 나는 얼마나 자주 업데이트를 확인해야하는지에 대한 조언을 누군가가 갖고 있는지 궁금해하고있다. 2 초마다? 5 초마다? 10 초?웹 채팅 클라이언트는 업데이트를 얼마나 자주 확인해야합니까?

또한 setTimeout의 콜백 함수에서 setTimeout을 호출해야합니까? 아니면 업데이트에 대한 아약스 요청의 콜백에서 호출해야합니까? 기본적으로 호출간에 n 초가 걸리거나 마지막 요청 완료와 다음 요청 시작 사이에 n 초가 필요합니까?

감사합니다.

답변

5

Comet (AKA reverse AJAX)과 같이 서버에 여러 번 핑하는 대신 영구 연결을 사용할 수 있습니다.

그렇지 않으면 2-3 초가 좋은 범위 여야합니다. 더 낮은 것은 서버에 과도한 스트레스를 가할 것이고, 더 오래 걸리면 앱이 느려질 것입니다.

0

그러나 자주 업데이트됩니다.

이것은 사용자 시스템을 프로파일 링하여 업데이트 대로드를 확인하기위한 최적의 시간을 결정할 수 있다는 것을 의미합니다.

5

나는 그것을 동적으로 만들 것이다. 2 ~ 10 초와 같이 나가기를 원하지 않는 범위를 결정하고, 중간 지점에서 시작합니다 (예 : 5 초). 설문 조사에서 항상 새 메시지가 반환되는 경우 대기 기간을 최소 수준으로 줄이십시오. 여론 조사가 공백으로 돌아 오기 시작하면 최대로 올리십시오. 이렇게하면 필요에 따라 응답 성을 균형있게 유지할 수있을뿐만 아니라 서버가 중단 될 때마다 서버를 중단시킬 수 있습니다.

1

event based 접근 방법을 살펴 보셨습니까? 그렇게하면 실시간 동작을 얻고 리소스를 절약하며 스마트 폴링 간격을 마련해야 할 필요성을 줄일 수 있습니다.

어떤 이유로 든 폴링을 사용해야하는 경우 짧은 시작 간격으로 갈 것입니다. 이는 대략 평균으로 알림이 발생할 것으로 기대하는 시간의 두 배 정도이며 그 다음에 간격을 늘리십시오. 불필요하게 서버를 망치는 것을 피하기위한 새로운 것은 아닙니다. 일반적으로 좋은 대답은 시스템이하는 일에 달려 있습니다.

채팅의 경우 이벤트 기반은 imho를 갈 수있는 이상적인 방법입니다.

관련 문제