최신 업데이트:2022-03-17 09:12:00
웹소켓은 단일 TCP 연결을 통해 양방향 통신 채널을 제공하는 컴퓨터 통신 프로토콜입니다. 기존 HTTP 통신에서는 클라이언트가 서버로부터 업데이트된 데이터를 즉시 가져오지 못하는 문제를 해결하고 클라이언트와 서버 간의 양방향 연결을 구축합니다. 이벤트를 기반으로 웹 애플리케이션 기능을 강화하여 신속성과 애플리케이션 성능을 향상시킬 것입니다.
동시 실행 및 실시간 응답에 대한 요구가 높을 경우 WebSocket은 다음과 같은 시나리오에 유용합니다:
웹소켓 연결하는 과정에서 클라이언트는 먼저 웹소켓 연결 요청을 보낸 후 서버가 응답을 반환해야 합니다. 이 과정을 핸드셰이크라고 합니다. 핸드셰이크가 성공한 후 클라이언트와 서버는 양방향 통신 채널을 구축하여 서로 데이터를 전송합니다.
기존 HTTP와 웹소켓 상호 작용의 비교입니다
라운드 로빈: 클라이언트는 시간 간격을 설정하고 정기적으로 서버에 신규 데이터에 대한 요청을 전송하며 서버는 신규 데이터가 있는지 없는지의 응답을 즉시 반환합니다.
롱폴링: 클라이언트는 신규 데이터에 대한 요청을 전송하고 서버는 신규 데이터를 사용할 수 있을 때까지 요청을 차단하고 응답하지 않습니다.
연결이 설정되면 클라이언트와 서버 간의 연결이 지속적으로 유지됩니다. 데이터가 업데이트되면 서버는 이를 클라이언트로 자동적으로 보낼 것입니다.