2010-04-15 2 views
0

나는 실시간 피드를 얻으려고 Twitter Streaming API을보고있었습니다. 하지만 내 서버에 저장하고 싶지 않습니다. 그냥 서버에서 가져 오면 브라우저 페이지가 내 서버의 트위터 풀 URL에서 데이터를 검색합니다. 하지만 몇 밀리 초마다 서버를 폴링하지 않으려합니다. 내 서버 스크립트가 내 브라우저 페이지로 계속 이동하는 방법이 있습니까?실시간 폴링없이 실시간 스트리밍 스트리밍

+0

* (관련) * http://blog.persistent.info/2009/08/twitter-pubsubhubbub-bridge.html – Gordon

답변

2

어떻게 살고 싶니? 소켓을 설정하는 방법이 있지만 상당히 복잡 할 수 있으며 여전히 대역폭을 적당히 소비합니다.

매 5 초마다 폴링해도됩니까? 몇 밀리 초마다 "생생한"결과를 얻을 수 있지만 웹 사이트에 무언가가 나타나기까지 몇 초가 걸리면 사용자로 화를 내지 않을 것입니다. 그것은 나를 위해 만족스럽게 "살아"있을 것입니다.

+0

동의합니다. 이전 요청 이후 1 초 폴링은 여전히 ​​괜찮습니다. 각 요청에 날짜/시간 스탬프를 보내면 서버가 빠른 트윗을 사용하여 신속하게 응답 할 수 있습니다. –

2

체크 아웃 COMET을 확인하십시오.


In web development, Comet is a neologism to describe a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.

나는 항상이 방법을 시도하고 싶어했지만 나는 주위를 확보하지 못했 :

숨겨진 IFrame을

동적 웹 응용 프로그램의 기본 기술을 숨겨진 IFrame HTML 요소 (웹 사이트에서 HTML 문서를 다른 HTML 문서에 포함시킬 수있는 인라인 프레임)를 사용하는 것입니다. 이 보이지 않는 IFrame은 청크로 보내지며, 암묵적으로이를 무한히 길게 선언합니다 ("영원한 프레임"이라고도 함). 이벤트가 발생하면 브라우저에서 실행될 JavaScript가 포함 된 스크립트 태그로 점차 iframe이 채워집니다. 브라우저는 HTML 페이지를 점진적으로 렌더링하기 때문에 각 스크립트 태그는받은대로 실행됩니다. [8]

IFrame 방법의 장점 중 하나는 모든 일반 브라우저에서 작동한다는 것입니다. 이 기술의 두 가지 단점은 신뢰할 수있는 오류 처리 방법이없고 요청 호출 프로세스의 상태를 추적 할 수 없다는 것입니다. [8]

+0

"숨겨진 IFrame을" http://www.obviously.com/tech_tips/slow_load_technique 나는 PHP에서 이것을 시도하고 FF와 Opera에서 작동한다. IE6 및 Chrome에서이 기능이 작동하지 않습니다. "; flush(); sleep(1); } ?> Phonethics

+0

잘 IE6은 죽어야합니다. JS 및 iframe 코드를 게시 할 수 있습니까? –

+0

아, 데이터를 스택으로 넘기기 전에 크롬 버퍼가 256 바이트처럼 보입니다. 그래서 PHP 코드 echo()와 flush()를하기 전에 최소한 256 바이트를 덩어리 (보내기) 할 필요가 있습니다. –