1. Socket.io란?
Socket.io는 웹소켓(WebSocket) 프로토콜을 기반으로 실시간 양방향 통신을 구현하는 JavaScript 라이브러리입니다.
HTTP vs WebSocket
- HTTP: 클라이언트가 요청 → 서버가 응답 (단방향)
- WebSocket: 서버 ↔ 클라이언트 (양방향)
주요 특징
- 실시간 통신: 서버와 클라이언트 간 즉각적인 데이터 전송
- 자동 재연결: 연결이 끊어지면 자동으로 재연결 시도
- 이벤트 기반: 커스텀 이벤트를 통한 통신
- Room과 Namespace: 연결을 그룹화하여 관리
- 폴백 지원: WebSocket이 지원되지 않는 환경에서 자동으로 대체 방식 사용
2. 핵심 개념
연결 수립 과정
1. 클라이언트 → 서버: HTTP 연결 요청
2. 서버 → 클라이언트: HTTP 101 Switching Protocols
3. 프로토콜 업그레이드: HTTP → WebSocket
4. 실시간 양방향 통신 채널 확립
폴백 메커니즘