Load Balancer
Sticky session
같은 socket id가 연결된 인스턴스로 다시 도착해야 join room, disconnect, ack 상태가 흔들리지 않는다.
Realtime Deployment
WebSocket은 한 번 연결된 뒤 오래 유지되므로 일반 HTTP 배포보다 라우팅, 인증, 확장, 장애 관측 조건을 더 명확히 잡아야 한다.
Load Balancer
같은 socket id가 연결된 인스턴스로 다시 도착해야 join room, disconnect, ack 상태가 흔들리지 않는다.
Scale-out
인스턴스가 여러 개일 때 room 이벤트와 broadcast를 Pub/Sub으로 공유해 메시지 누락을 줄인다.
Handshake
초기 연결 시 토큰을 검증하고 사용자 ID, 권한, 프로젝트 접근권을 socket context에 붙인다.
Transport
HTTPS 페이지에서는 wss:// 연결을 사용해야 브라우저 mixed content 차단과 토큰 노출 위험을 피한다.
요청 경로
증상
LB timeout, idle timeout, pingInterval 설정을 먼저 확인한다.
증상
Redis adapter 연결과 namespace별 room join 로그를 같이 본다.
증상
토큰 전달 위치, 만료 시간, CORS origin, cookie sameSite를 점검한다.
증상
프론트가 HTTPS라면 socket endpoint도 wss://로 노출해야 한다.