2010-01-26 2 views
4

간단한 HTTP 게시물을 사용하여 REST API를 통해 서버 응용 프로그램과 통신하는 데스크톱 클라이언트 응용 프로그램이 있습니다. 현재 클라이언트는 매 X 분마다 폴링을 수행하지만 데이터를보다 자주 새로 고침하고 싶습니다. 서버가 클라이언트에게 새로운 데이터를 알리거나 HTTP 서버의 의도를 벗어나는 것이 가능한가? 이것에 접근하는 가장 좋은 방법에 대한 생각은 많이 감사 할 것입니다. 감사!클라이언트 응용 프로그램에서 데이터를 업데이트하는 중 폴링을 피하는 방법은 무엇입니까?

답변

3
당신은 어떻게 서버 측에 PHP를 사용 Long Polling을 구현하는 아주 기본적인 예제를 설명하는 다음과 같은 스택 오버플로 게시물에 대한 허용 대답을 확인 할 수 있습니다

:

Long Polling을 사용할 때 클라이언트 응용 프로그램은 무한 타임 아웃 (또는 매우 긴 시간)과 함께 HTTP 서버에 대한 요청을 시작합니다. 이제 새로운 데이터가 사용 가능 해지 자마자 서버는 활성 연결 준비를 발견하여 즉시 데이터를 전송할 수 있습니다. 전통적인 폴링에서는 응용 프로그램이 새 폴링을 시작하고 새 데이터가 전송되기 전에 네트워크 대기 시간을 서버에 도달 할 때까지 기다려야합니다.

그런 다음 데이터가 전송되면 연결이 닫히지 만 응용 프로그램은 서버에 지속적으로 열린 연결을 유지하기 위해 새 연결을 즉시 열어야합니다. 사실 액티브 연결이없는 곳에는 아주 작은 간격이있을 것입니다. 그러나 이것은 종종 많은 어플리케이션에서 무시해도 좋습니다.

1

서버 측에서 HTTP 연결을 연 상태로 유지하면 업데이트가있을 때마다 데이터를 보내고 실제로 데이터를 보내려면 연결을 플러시 할 수 있습니다. 그러나 수만 개의 연결이 필요할 경우 TCP/IP 스택에 문제가 발생할 수 있습니다.

관련 문제