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으로 사용
Heartbeat / reconnect
끊김 감지와 재연결 처리

구분: 외부 시스템과 표준 WebSocket만 맞추면 되는 경우에는 Socket.IO가 과할 수 있고, 앱 전체 실시간 기능을 빠르게 운영해야 한다면 도움이 크다.