2016-10-06 1 views
0

방금 ​​RFC-6202을 읽고 단순히 청크 분할을 요청하는 대신 SSE 사용의 이점을 파악할 수 없었습니다. 예제 사용 사례로서 클라이언트가 순수 HTTP 기술을 사용하여 서버의 이벤트에 "가입"하고자하는 클라이언트와 서버를 구현하려고한다고 가정하십시오. 초기 HTTP 요청을 열어 놓은 상태에서 서버가 단점을 겪고 새 이벤트가 발생할 때마다 새 청크를 보내는 경우가 있습니까? Transer-Encoding 이후간단한 HTTP 청크 스트리밍 대신 서버 - 보낸 이벤트를 사용하는 이유는 무엇입니까?

  • 홉 - 투 - 홉 대신 엔드 - 투 - 엔드의 사이에서 프록시를 전달하기 전에 덩어리를 통합하는 시도 할 수 있습니다 : I는 다음과 같습니다 스트리밍의 종류에 대한 몇 가지 인자를 발견 클라이언트에 대한 응답.
  • TCP 연결은 항상 클라이언트와 서버간에 열려 있어야합니다.

그러나 이해할 때 두 인수는 SSE에도 적용됩니다. 내가 상상할 수있는 또 다른 잠재적 인 주장은 자바 스크립트 브라우저 클라이언트가 각각의 청크를 실제로 얻을 수있는 기회가 없을 수도 있다는 것입니다. 다시 결합하면 클라이언트에 투명하게 낮은 수준에서 처리되기 때문입니다. 그러나 비디오 스트림이 어떤 종류의 비슷한 방식으로 작동해야하기 때문에 그렇지 않은지 실제로 알지 못합니다.

EDIT : 내가 본 바로는 SSE는 기본적으로 정확히 사용되는 API로 캡슐화 된 청크 스트림입니다. 맞습니까?

그리고 한 가지 더. This page은 SSE가 스트리밍 바이너리 데이터 (기술적 인 이유?)를 지원하지 않는다고 말하면서 (아래에서) 가능하지만 비효율적이라고 말합니다. 누군가 분명히 해줄 수 있겠습니까?

답변

0

예, SSE는 클라이언트/서버 측의 자동 재 연결 또는 다양한 유형의 이벤트 처리와 같은 멋진 기능을 제공하기 위해 HTTP 위에서 작동하는 API입니다.

스트리밍 바이너리 데이터에 사용하려는 경우 올바른 API가 아닌지 확인하십시오. 주된 사실은 SSE가 텍스트 기반 프로토콜이라는 것입니다 ('\ n'과 모든 줄은 텍스트 태그로 시작됩니다.) 여전히 SSE를 통해 바이너리를 실험하고 싶다면 신속하고 더러운 해킹이 https://github.com/mariomac/jeasse

: 당신은 SSE에 대한 자세한 내용을 알고 싶다면 자료 (64)

의 데이터는, 어쩌면 당신은이 간단한 라이브러리에 모습을 가질 수

0

올바른 SSE는 청크 분할 된 HTTP 위에 멋진 API입니다. API가 좋으며 재 연결을 지원합니다.

SSE를 통한 바이너리에 대한 귀하의 질문에 관해서는 그 경험이 없습니다. 그러나 HTTP를 통해 바이너리를 보낼 수 있습니다. 그래서 당신이 이것을 할 수없는 이유가 없습니다. 하지만 JavaScript로 변환해야 할 수도 있습니다.

관련 문제