2012-05-26 3 views
0

나는 정말로 이것을 좋아한다 : http://services.digg.com/2.0/streamDigg의 스트리밍 API는 어떻게 작동합니까?

콘텐츠는 application/json이라는 단일 연결을 사용하여 연속적으로 수신된다. 또한 브라우저에 의해 소모됩니다. 어떻게 구현됩니까? around을 보면 조금 긴 폴링, HTML5 서버 전송 이벤트 또는 웹 소켓이 아닌 것 같습니다.

어떻게 그런 짓을 할까? 시작점으로 사용할 수있는 오픈 소스 솔루션이 있습니까?

감사합니다,

/데이비드 그것은 청크 분할 전송 인코딩과 전송 바이트 단지 스트림의

답변

2

. 기본적으로 HTTP 청크 스트리밍입니다.

서버 전송 이벤트에 대해 언급 했으므로 특별한 형식 지정 없이는 SSE로 생각할 수 있습니다. 메시지는 개행으로 구분 된 JSON 객체입니다. 서버에서는 SSE 빼기 형식을 구현하는 것과 같은 방법으로이를 구현할 수 있습니다.

이러한 API의 클라이언트는 이러한 데이터 스트림을 구문 분석하고 개행 문자로 메시지를 분리 할 수 ​​있어야합니다. 일부 브라우저는 각 청크에 대해 호출되는 XMLHttpRequest4readyState을 지원하므로 스트림 된 데이터를 처리 할 수 ​​있습니다.

+0

안녕 과르, 귀하의 회신에 감사드립니다. 스트리밍 API 구축과 관련하여 청크 분할 전송 인코딩 및 SSE에 대한 이유가 있습니까? –

+0

물론, API가 브라우저를 타겟팅하지 않으면 단순히 청크를 사용할 수 있습니다. 이러한 유스 케이스에서는 EventSource 프로토콜보다 구문 분석하기가 쉽습니다. 고려해야 할 또 다른 사항은 도메인 간 통신입니다. EventSource 구현의 대부분은 CORS (원점 간 자원 공유)를 지원하지 않거나 방금 가져 왔습니다. 반면 AJAX는 모든 곳에서 지원됩니다. 이것은 옵션 일 수있는 또 다른 경우입니다. – igorw

+0

덕분에 Digg API는 대부분의 브라우저에서 청크를 사용하더라도 "최상위"문서로 작동합니다. 아마도 XMLHttpRequest를 통해 소비 될 수 없다는 말입니까? –