WebSockets-이중 통신

웹 소켓의 필요성을 파악하기 전에 기존에 사용되는 기술을 살펴볼 필요가 있습니다. duplex communication서버와 클라이언트 사이. 그들은 다음과 같습니다-

  • Polling
  • 긴 폴링
  • Streaming
  • 포스트 백 및 AJAX
  • HTML5

투표

폴링은 전송에 존재하는 데이터에 관계없이 주기적으로 요청을 수행하는 방법으로 정의 할 수 있습니다. 주기적인 요청은 동기 방식으로 전송됩니다. 클라이언트는 지정된 시간 간격으로 서버에 주기적으로 요청합니다. 서버의 응답에는 사용 가능한 데이터 또는 일부 경고 메시지가 포함됩니다.

긴 폴링

이름에서 알 수 있듯이 긴 폴링에는 폴링과 같은 유사한 기술이 포함됩니다. 클라이언트와 서버는 일부 데이터를 가져 오거나 시간 초과가 발생할 때까지 연결을 활성 상태로 유지합니다. 어떤 이유로 연결이 끊어지면 클라이언트가 다시 시작하여 순차적 요청을 수행 할 수 있습니다.

긴 폴링은 폴링 프로세스에 비해 성능 향상에 불과하지만 지속적인 요청은 프로세스 속도를 늦출 수 있습니다.

스트리밍

실시간 데이터 전송을위한 최상의 옵션으로 간주됩니다. 서버는 필요한 데이터를 가져올 때까지 클라이언트와의 연결을 열어두고 활성 상태로 유지합니다. 이 경우 연결이 무기한 열려 있다고합니다. 스트리밍에는 파일 크기를 늘리고 지연을 증가시키는 HTTP 헤더가 포함됩니다. 이것은 주요 단점으로 간주 될 수 있습니다.

AJAX

AJAX는 Javascript의 XmlHttpRequest목적. 비동기 Javascript 및 XML의 축약 된 형식입니다.XmlHttpRequest개체를 사용하면 전체 웹 페이지를 다시로드하지 않고도 Javascript를 실행할 수 있습니다. AJAX는 웹 페이지의 일부만 보내고받습니다.

AJAX 호출 코드 스 니펫 XmlHttpRequest 개체는 다음과 같습니다-

var xhttp;

if (window.XMLHttpRequest) {
   xhttp = new XMLHttpRequest();
} else {
   // code for IE6, IE5
   xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

주요 단점 AJAX 에 비해 Web Sockets -

  • HTTP 헤더를 전송하므로 전체 크기가 더 커집니다.
  • 통신은 반이중입니다.
  • 웹 서버는 더 많은 리소스를 소비합니다.

HTML5

HTML5는 웹 애플리케이션을 개발하고 디자인하기위한 강력한 프레임 워크입니다. 주요 기둥은 다음과 같습니다.Mark-up, CSS3Javascript 함께 API.

다음 다이어그램은 HTML5 구성 요소를 보여줍니다.

아래에 제공된 코드 스 니펫은 HTML5 및 해당 문서 유형의 선언을 설명합니다.

<!DOCTYPE html>

웹 소켓이 필요한 이유

인터넷은 정보의 개념적 웹을 형성하기 위해 서로를 연결하는 HTML (Hypertext Mark-up Language) 페이지의 모음으로 생각되었습니다. 시간이지나면서 정적 리소스의 수가 증가하고 이미지와 같은 풍부한 항목이 웹 패브릭의 일부가되기 시작했습니다.

쿼리를 기반으로 콘텐츠가 생성 된 페이지 인 동적 서버 페이지를 허용하는 서버 기술이 발전했습니다.

머지 않아보다 동적 인 웹 페이지가 있어야한다는 요구 사항으로 인해 DHTML (Dynamic Hypertext Mark-up Language)을 사용할 수있게되었습니다. 모두 JavaScript 덕분입니다. 다음 해에 우리는cross frame communication 페이지 새로 고침을 피하기 위해 HTTP Polling 프레임 내.

그러나 이러한 솔루션 중 어느 것도 서버와 클라이언트 간의 실시간 양방향 통신에 진정으로 표준화 된 크로스 브라우저 솔루션을 제공하지 않았습니다.

이로 인해 웹 소켓 프로토콜이 필요하게되었습니다. 전이중 통신이 생겨 모든 웹 브라우저에 풍부한 데스크탑 기능을 제공합니다.