2010-12-10 2 views
2

이것은 모든 유형의 데이터 피드가 될 수 있습니다. 인기있는 사례이기 때문에이 예제 주식 시장 데이터에 대해 말하도록합시다. 하지만 저는 실시간 데이터 피드에 대해 말하고 있습니다. 따라서 지속적으로 데이터를 보냅니다.인터넷 스트리밍 데이터 피드는 어떻게 작동합니까?

어떻게 구현되는지 이해하려고합니다. 이것은 http를 통해 어떤 식 으로든 발생합니까? 나는 클라이언트가 서버에 연결하는 방법과 서버가 연속적인 데이터를 보내는 방법을 알지 못한다. 기술적으로 어떻게 작동하는지 아무도 모른다. 클라이언트가 서버에 어떻게 연결할 수 있습니까? C#이나 Java 등을 사용해 봅시다. http 또는 어쩌면 다른 유형의 방법을 통해 발생합니까? 자세한 내용을 참조하십시오.

감사합니다.

답변

2

정상적인 HTTP 트래픽과 전혀 다른 것은 아닙니다.

웹 사이트를 열면 어떻게 될까요? (매우 대략적인 개요)

  1. 컴퓨터가 서버에 접속하여 연결됩니다.
  2. 서버가 데이터를 패킷으로 나눠 보내기 시작합니다.
  3. 컴퓨터는 패킷을 수신하고 지연 될 가능성이있는 패킷을 수신 한 다음 웹 사이트에 다시 어셈블합니다.
    • 컴퓨터가받은 패킷에 대해 확인 응답을 보냅니다.
    • 서버는 상당한 시간 동안 수신 확인을받지 못한 모든 패킷을 재전송합니다.
    • 패킷 및 수신 확인을받는 중 모두 기다립니다.
  4. 사이트 표시에 필요한 모든 데이터가 전송되면 컴퓨터는 해당 시간 동안 서버에 감사하고 연결을 끊습니다.

이 프로세스의 어느 시점에서 어느 상대방이 상당한 시간 동안 응답을하지 않으면 기술적 인 문제로 가정 할 때 양쪽에서 연결이 끊어 질 수 있습니다.

"스트리밍 데이터 피드"는 어떻게됩니까? (심지어 거친 개요)

  1. 클라이언트가 서버에 연결하여 연결을 설정합니다.
  2. 서버가 클라이언트로 패킷으로 분할 된 데이터를 보내기 시작합니다.
  3. 클라이언트는 패킷을 수신하고 지연 될 가능성이있는 패킷을 수신 한 다음 다시 조립합니다.
    • 클라이언트가받은 패킷에 대한 확인 응답을 보냅니다.
    • 서버는 상당한 시간 동안 수신 확인을받지 못한 모든 패킷을 재전송합니다.
    • 패킷 및 수신 확인을받는 중 모두 기다립니다.

유일한 차이는 여전히 데이터를 기대하고 있기 때문에 클라이언트가 서버에 끊지 않는 둘 다 연결을 끊도록 빨리 아니라는 것이다.

것은 웹 서버 (웹 사이트)이 많은 사람들에게 작은 데이터 조각을 전달하는 작업에 대한 전문 있다는 것입니다, 그래서 그들은 보냈습니다 당신이 한 번에 모든 데이터를 끊고 빠르게있어 . 귀하의 서버 스크립트는 단순히 을 종료하지 않고을 종료 할 수 있으며 연결은 계속 유지됩니다. 여기에 그것을 증명하는 작은 PHP 스크립트입니다 :

while (true) { 
    echo '.'; 
    sleep(1); 
} 

이 무기한 매 초마다 새로운 .을 보내드립니다 (웹 서버가 스크립트를 종료하고 즉시 출력을 보낼 수 없습니다에 적절하게 구성 할 필요가 있습니다).

기본 사항은 Wikipedia article about TCP/IP이고 구체적인 예는 this article about long-polling/HTTP streaming입니다.

+0

스트리밍 중 여전히 http (포트 80)를 통해 이야기하고 있습니까? 이 작업을 수행 할 때 클라이언트가 서버에 연결하는 방법에 대한 예가 무엇입니까? 내가 잠재적으로 웹 사이트 주소를 입력하고 스트리밍 정보를 얻을 수있는 것처럼? (나는 웹 사이트를 본 적이 없다) – foreyez

+0

@foreyez 업데이트를 참조하십시오. HTTP는 실제로 중요한 부분이 아니며 실제 연결을 처리하는 TCP/IP 위에있는 데이터 교환 프로토콜 일뿐입니다. 정보를 계속 보내지 않아도되는 임의의 임의의 서버에 연결할 수 없습니다. 웹 사이트는 정보를 "스트리밍"하지 않습니다. 웹 사이트의 크기가 한정되어 있기 때문입니다. 그러나 일반적으로 서버가 정보를 끊지 않고 계속 보내면이 방법이 효과적입니다. – deceze

관련 문제