pile·
프론트엔드·flexflex·

모든 탭에 퍼지는 실시간 이벤트, SSE 1개로 끝내는 전략

문제숏폴링 방식의 서버 부하와 B2B 고객사 프록시 환경의 WebSocket 미지원으로 실시간 이벤트를 여러 탭에 안정적으로 전파하기 어려웠다.
접근Service Worker를 프록시로 활용해 여러 탭이 SSE 연결 1개만 공유하도록 설계. Clients#matchAll로 모든 탭에 이벤트 전파, 지수 백오프 재시도, SSE id 속성으로 메시지 유실 방지. CloudEvents 스키마를 AWS Glue Schema Registry에 등록해 TypeScript 인터페이스를 자동 생성했다.
결과SSE 연결 수를 탭 수 대비 1/N으로 줄여 서버 부하를 감소시키고, 프록시 환경에서도 안정적인 실시간 이벤트 전파를 달성했다.
flex
flex 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

    항공 프론트엔드 구축기 (7/10): 창구를 하나만 두었습니다

    여기어때 항공 서비스 프론트엔드가 웹과 앱 웹뷰 두 환경에서 동일한 함수 호출로 동작하는 앱 브릿지 추상화 레이어를 설계한 과정을 다룬다. iOS·안드로이드 규약 차이와 "웹에 존재하지 않는 브릿지를 어떻게 호출하나"라는 문제를 단일 추상화 층으로 해결한 구현 사례다.

    요약 이어보기
    #react#typescript#webview+2