1. Socket.io란?

Socket.io는 웹소켓(WebSocket) 프로토콜을 기반으로 실시간 양방향 통신을 구현하는 JavaScript 라이브러리입니다.

HTTP vs WebSocket

주요 특징

  1. 실시간 통신: 서버와 클라이언트 간 즉각적인 데이터 전송
  2. 자동 재연결: 연결이 끊어지면 자동으로 재연결 시도
  3. 이벤트 기반: 커스텀 이벤트를 통한 통신
  4. Room과 Namespace: 연결을 그룹화하여 관리
  5. 폴백 지원: WebSocket이 지원되지 않는 환경에서 자동으로 대체 방식 사용

2. 핵심 개념

연결 수립 과정

1. 클라이언트 → 서버: HTTP 연결 요청
2. 서버 → 클라이언트: HTTP 101 Switching Protocols
3. 프로토콜 업그레이드: HTTP → WebSocket
4. 실시간 양방향 통신 채널 확립

폴백 메커니즘