WebSocket Gateway

NestJS WebSocket은 연결 입구를 Gateway로 모은다

게이트웨이는 연결 수명주기, 이벤트 처리, 룸 단위 전파를 한곳에서 다룬다.

1. Handshake 연결을 열고 검증한다

HTTP 업그레이드로 소켓을 만들고 토큰과 CORS를 확인한다.

2. Gateway 수명주기를 받는다

@WebSocketGateway가 접속, 해제, 네임스페이스를 관리한다.

3. Event 메시지를 라우팅한다

@SubscribeMessage가 클라이언트 이벤트를 서버 로직으로 보낸다.

4. Room 대상을 좁혀 보낸다

특정 방, 사용자, 전체 브로드캐스트를 구분해 메시지를 전파한다.

Polling 주기 요청

단순하지만 지연과 헤더 비용이 크다.

Long Polling 응답 지연

서버 응답을 늦추지만 요청은 계속 반복된다.

WebSocket 양방향 연결 유지

채팅, 알림, 협업처럼 즉시 밀어줘야 하는 기능에 적합하다.

핵심 HTTP 요청을 반복하는 대신 하나의 연결을 유지하고, 서버가 필요한 순간 바로 메시지를 밀어 넣는다.