Socket.IO
Socket.IO는 실시간 통신 운영 기능을 함께 제공한다
Socket.IO는 표준 WebSocket API와 같은 프로토콜이 아니다. 자체 클라이언트와 서버가 만나 재연결, fallback, room 같은 기능을 제공한다.
가능하면 WebSocket, 필요하면 HTTP long polling fallback
room, namespace, acknowledgement를 애플리케이션 기능으로
제공
순수 WebSocket 클라이언트와 그대로 호환되지는 않는다
Application
개발자가 쓰는 이벤트 API
emit / on
이벤트 이름 기반 메시지ack
요청-응답처럼 확인room
특정 그룹에 브로드캐스트namespace
논리 채널 분리→
Transport layer
Engine.IO가 전송 방식을 관리
WebSocket
가능하면 지속 양방향 연결 사용
가능하면 지속 양방향 연결 사용
HTTP long polling
제약 환경에서 fallback으로 사용
제약 환경에서 fallback으로 사용
Heartbeat / reconnect
끊김 감지와 재연결 처리
끊김 감지와 재연결 처리
구분: 외부 시스템과 표준 WebSocket만 맞추면 되는 경우에는 Socket.IO가 과할 수 있고, 앱 전체 실시간 기능을 빠르게 운영해야 한다면 도움이 크다.