2012-01-04 2 views
1

Apache2 + PHP로 HTTP 푸시를 수행 할 수 있습니까? 주변에서 Google 검색을 한 적이 있는데 내가 찾고있는 항목과 가까운 유일한 것은 PECL 소켓 튜토리얼이었습니다.이 가이드는 내가 찾고있는 것을 상당히 다루지 않았습니다.PHP/Apache2로 HTTP 서버 푸시

현재 내 응용 프로그램에는 기본 읽기 GET API가 있으며 클라이언트는 15 초마다 한 번씩 API에 대한 읽기를 요청합니다. 데이터를 보낼 때 훨씬 더 나은 방법으로 보일뿐입니다. 내 고객은 .net로 작성되었습니다.

이러한 기술은 전혀 가능합니까? 아니면 내가 그 순간에 난 그냥 쉽게 사용할 수있는 자원/인프라가없는 자바/혜성을 시도하고 사용해야합니다

HTTP 서버 푸시에

더 많은 정보 : https://en.wikipedia.org/wiki/Push_technology#HTTP_server_push

답변

0

다른 기술 사이에 결정 HTTP 서버에서 클라이언트로 이벤트를보고하기 위해서는 다음과 같은 절충안이 필요합니다. 150 명의 클라이언트가 15 초마다 폴링하여 1 초를 폴링하면 통계적으로 10 개의 연결이 연결되고 150 대의 클라이언트가 서버 푸시 기술을 사용하면 150 개의 연결이 연결되지만 CPU가 훨씬 적습니다.

IMHO 긴 폴링은 Apache/PHP와 함께 사용하면 서버가 클라이언트에 영향을 줄 수 있으므로 최상의 균형을 유지합니다 (서버의 연결 수가 너무 높으면 가장 긴 실행 폴링을 반환 할 수 있으며 클라이언트에게 정보를 보내서 즉시 재발송하지는 않지만 지연 될 수 있습니다.

+0

답을 보내 주셔서 감사 드리며, 저는 Long Polling 기법의 의미를 조금 확신하지 못합니다. 가장 오래 기다린 고객이 처음으로 응답을받을 때입니까? 미안 해요 조금은 noobish :) 내 현재 상황으로 그것은 최대 20 클라이언트가 될 것입니다. 하지만 난 많은 요청에 서버를 스래시하고 싶지 않아, 그래서 적은 데이터로 빠른 데이터를 원한다. 어느 롱 폴링 기법이 해결 될지도 모르지만 그게 뭔지 정말 모르겠다 고 생각합니다 .... – Mattisdada

+0

오랫동안 폴링한다는 것은 클라이언트 측에서 똑같은 일을하는 것입니다. 어쩌면 몇 가지 제한 시간을 조정하여 500ms라고 말하는 2 가지 요청 사이의 일시 중지 시간을 줄일 수 있습니다. 서버 측에서는 폴링 요청이 오면보고 할 것이 없으므로 잠시 (예를 들어 30 초) 기다립니다. 이 시간 동안 서버에서 이벤트가 발생하면 해당 이벤트를보고하고 요청을 종료합니다. 그렇지 않다면 제한 시간이 지나면 요청을 끝내십시오. "보고 할 것이 없습니다" –

+0

많은 이해를 할 수있는 시간을 가져 주셔서 감사합니다. 감사합니다. :) – Mattisdada