Socket.IO 는 WebSocket 이 아냐
이게 Socket.IO 에 대한 가장 중요한 사실: Socket.IO 는 WebSocket 위에 올라간 custom protocol (HTTP long-polling 을 fallback transport 로). plain 브라우저 WebSocket 클라가 Socket.IO 서버랑 못 말함. plain WebSocket 서버가 Socket.IO 클라 못 받음. 'room', 'event' 같은 단어 공유하지만 자기네 SDK 통해서만 interop.
Socket.IO 가 추가하는 거
Auto-reconnect, room + namespace (multiplexed channel), acknowledgement (callback 스타일 request-response), 자동 transport fallback (WebSocket → HTTP long-polling), built-in scaling adapter (Redis, Postgres). chat/collab/notification 모양에 맞는 application 한테 raw WebSocket 보다 ship 빠름.
비용: lock-in
Socket.IO 픽 하면 모든 클라가 Socket.IO 라이브러리 써야 함. 웹, 모바일, server-to-server — 다 SDK 필요. audience 가 자기 클라면 ok. 제3자 (게임 스튜디오, 파트너, IoT 디바이스) 가 임의 도구로 connect 해야 하면 문제.