채팅, 협업 편집처럼 양방향 메시지가 필요하고 서버가 상태ful connection과 backpressure를 관리할 수 있을 때 씁니다.
실시간 통신은 방향성, 재연결, 프록시 조건으로 고른다
WebSocket, SSE, long polling, Socket.IO는 모두 실시간처럼 보이지만 HTTP 업그레이드, 단방향 스트림, 재요청, fallback 전략이 서로 다릅니다.
서버에서 클라이언트로만 흐르는 알림, 진행률, 피드에 맞고 HTTP/1.1 proxy와 재연결 처리가 비교적 단순합니다.
구형 환경에서 프록시 호환은 좋지만 요청 반복, head-of-line 지연, 서버 부하를 지연 예산에 넣어야 합니다.
재연결, room, ack, fallback을 제공하지만 프로토콜 계층이 추가되어 표준 WebSocket 클라이언트와 그대로 호환되지는 않습니다.
클라이언트가 서버로 즉시 보낼 메시지가 있으면 WebSocket, 서버 알림만 있으면 SSE를 먼저 검토합니다.
로드 밸런서 timeout, sticky session, heartbeat 간격, reconnect jitter를 운영 기준으로 확인합니다.
브라우저, 모바일 네트워크, corporate proxy에서 upgrade와 streaming이 허용되는지 분리해 설명합니다.