C.W.K.
Stream
Lesson 01 of 07 · published

Socket.IO 가 뭐야?

~12 min · library, socket-io

Level 0Poller
0 XP0/60 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

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 해야 하면 문제.

Code

Socket.IO protocol layer·text
  Application code              <-- what you write
  --------------------------
   Socket.IO API              <-- rooms, namespaces, acks, events
  --------------------------
   Engine.IO                  <-- connection mgmt, transport switching
  --------------------------
   WebSocket | HTTP polling    <-- actual transport(s)

External links

Exercise

Socket.IO 서버 띄워. 브라우저 devtools network 탭 열고 connect 보기. 두 단계 패턴: 먼저 plain HTTP polling 교환, 그 다음 WebSocket upgrade. Raw WebSocket 클라 (websocat ws://localhost:3000) 로 시도 — 실패. 같은 protocol 이 아니라는 거 눈으로 확인.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.