Socket 인스턴트 메시징 원리

2053 단어

1. Socket 소개

  • IP 주소, 포트 번호를 나타내는 데 사용되며 네트워크의 통신 메커니즘이다.
  • 네트워크 통신의 밑바닥은 모두 Socket을 바탕으로 한다. IP와 포트를 포함하기 때문에 네트워크가 있으면 어느 장치의 어느 응용 프로그램을 찾을 수 있다.

  • 2. 인스턴트 메시징 원리:

  • (Instant messaging, 약칭 IM)
  • 1.AB , 
    2. IM , 
    3.A Socket IM ,B Socket IM 
    4.A B,B A, ,
       
    

    3. 인스턴트 메시징에 문제가 있습니다.

  • 서버는 클라이언트 연결만 수동적으로 기다릴 수 있고 클라이언트를 능동적으로 연결할 수 없습니다
  • 만약 B가 A에게 메시지를 보냈는데 공교롭게도 A가 서버에 연결되지 않았다면 인스턴트 통신은 즉각적이지 않았다

  • 4. 실시간 통신의 긴 연결 원리

  • 실시간 통신은 기본적으로 HTTP 1.1 프로토콜의 긴 연결
  • 사실 응용층의 HTTP 프로토콜 자체는 긴 연결과 짧은 연결의 구분이 존재하지 않는다. 전송층을 가리키며TCP , 다시 말하면 TCP 연결을 복용하고 TCP의 구축과 끊기를 반복하지 않으며 자원을 절약한다
  • HTTP는 택배 명세서와 같다. 택배원이 있어야 당신이 배달을 어디로 가는지 알 수 있고 TCP는 그 길과 같다. 택배원은 이 길을 통해 그곳으로 배달해야 한다
  • 5. 실시간 통신의 데이터 전송 방식과 원리


    5.1.짧은 폴링:
  • 클라이언트는 짧은 시간 간격으로 서버에 요청을 보내고 서버 데이터는 업데이트가 있든 없든 즉시 응답합니다.
  • 구현은 간단하지만 서버에 대한 압력은 크다.

  • 5.2.긴 폴링:
  • 클라이언트가 서버에 요청을 보낸 후 서버는 데이터가 업데이트되었는지, 업데이트 응답이 있는지, 업데이트 응답이 없는지, 연결 시간을 초과했는지 확인한다.링크가 끊어지면 클라이언트가 즉시 다시 요청을 보냅니다.
  • 과 짧은 윤문비는 요청 횟수를 크게 줄였지만 장시간 연결에도 자원이 소모된다.

  • 5.3.SSE(Server-sent Events 서버 푸시 이벤트):
  • 서버가 브라우저에 데이터를 단방향으로 전송하고 브라우저 HTTP 요청에 따라 양방향 통신을 실현할 수 있음
  • 원리: 서버가 클라이언트에게 보내는 것은 흐르는 정보이고 실제로는 긴 윤문
  • 5.4.WebSocket

  • 데이터 전송(네트워크 통신) 방식이자 응용층 프로토콜
  • WebSocket는 HTML5에서 출시한 긴 연결을 지원하는 애플리케이션 계층 프로토콜
  • 클라이언트와 서버의 진정한 양방향 통신
  • WebSocket은 양방향 통신을 위해 1개TCP 를 사용합니다.
  • WebSocket 연결 서버의 URI는 "ws"또는 "wss"로 시작합니다.ws 시작 기본 TCP 포트는 80, wss 시작 기본 포트는 443
  • 서버는 프로토콜 헤더에 따라 WebSocket인지 HTTP인지 판단
  • 프로토콜을 사용하여 서버 클라이언트의 양방향 통신을 실현할 수 있다.단 한 번의 HTTP 요청으로 끊임없는 정보 전송 가능
  • 긴 폴링 짧은 폴링 데이터 전송의 실시간성이 떨어지는 문제를 피했다
  • HTTP 연결을 끊고 매번 HTTP 프로토콜 정보를 다시 보내야 하며 서버에서 HTTP 프로토콜 정보를 분석하여 효율에 영향을 주어야 한다
  • WebSocket 프로토콜은 WebSocket 프로토콜을 바탕으로 이루어진 것으로 악수 과정과 데이터 프레임 양방향 전송 과정을 포함한다.
  • 좋은 웹페이지 즐겨찾기