WebSocket

WebSocket 배포 제약

실시간 통신은 HTTP 요청과 수명이 달라 연결 유지 방식, 재연결 정책, 호스팅 환경 지원 여부를 먼저 확인해야 합니다.

socket.io

이벤트 채널 구성

채팅, 알림, 진행률처럼 서버가 먼저 보내야 하는 이벤트의 이름과 payload를 고정합니다.

별도 서버

장기 연결 런타임

Node 서버나 managed realtime 서비스가 연결 수, region, 인증 토큰을 어떻게 처리하는지 봅니다.

클라이언트 설정

구독과 정리

mount 때 연결하고 unmount 때 listener를 지워 중복 이벤트와 메모리 누수를 막습니다.

배포 제약

호스팅 제한 확인

서버리스 플랫폼의 timeout, sticky session, WebSocket 지원 범위를 배포 전에 확인합니다.

실시간 연결

Vercel 소켓 서버 분리

서버리스 배포는 장기 연결에 제한이 있을 수 있어 socket.io 서버나 외부 실시간 서비스를 분리할 수 있습니다.

소켓 구성

별도 서버Next.js 배포와 소켓 배포의 로그, scale, 장애 대응 경로를 따로 둡니다.
클라이언트 설정네트워크 끊김, 탭 재개, 중복 연결을 재현해 사용자 메시지를 확인합니다.
배포 제약플랫폼 문서의 WebSocket 지원 범위와 대체 pub/sub 서비스를 같이 비교합니다.