Realtime deployment

WebSocket 배포는 연결을 어디서 유지하느냐를 먼저 정한다

REST와 달리 인증, 라우팅, 브로드캐스트, timeout이 연결 수명 전체에 영향을 준다.

Client

WSS와 재연결 정책

브라우저는 TLS와 reconnect backoff를 기준으로 연결한다.

Load balancer

timeout과 sticky 기준

idle timeout과 연결 수명 정책이 끊김을 만든다.

Gateway

handshake guard

JWT, origin, namespace를 연결 시작 시점에 검증한다.

Redis adapter

인스턴스 간 broadcast

여러 Gateway 인스턴스가 같은 room 메시지를 공유한다.

조건 지키는 대상 무너지면 보이는 증상 점검 위치
WSS / TLS
암호화 연결
토큰과 세션 쿠키 mixed content, 토큰 노출 LB TLS 종료, backend scheme
Auth guard
핸드셰이크 검증
socket.data.user 401 반복, 권한 없는 room join token 위치, 만료, CORS
Redis adapter
인스턴스 공유
room, broadcast, ack 일부 사용자만 메시지 누락 pub/sub 연결, namespace
Timeout
연결 수명
pingInterval, idle timeout 재연결 급증 LB timeout, client reconnect log

active connections연결 수가 급격히 크면 scale 정책을 본다.

join / leave room권한과 disconnect 원인을 함께 기록한다.

reconnect rateLB timeout과 adapter 연결을 의심한다.