Repository navigation
fix(stomp): 재연결 때 놓친 일정·채팅 복구와 재연결 백오프 적용 - #247
Open
KangShinGyu98 wants to merge 16 commits into
Open
KangShinGyu98 wants to merge 16 commits into
KangShinGyu98 wants to merge 16 commits into
Conversation
- 백엔드 도달 실패·5xx·429는 503, 인증 실패가 확정된 경우만 401 - refresh 직후 재확인이 장애로 실패해도 새 쿠키 전달 - proxy의 세션 판정은 그대로 유지 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- reconnectDelay·EXPONENTIAL·maxReconnectDelay(5초)로 재시도 간격 위임 - 재연결 직전 세션 확인을 beforeConnect로 옮기고 401이면 재연결 중단 후 로그아웃 - 연결 문제 배너는 끊긴 지 45초가 지나면 표시하고 연결되면 해제 - 다시 시도는 연결 시도 중이 아닐 때만 바로 재연결 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 브라우저 online 이벤트에서 다시 시도와 같은 경로로 즉시 재연결 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 구독 오류(ERROR)를 받으면 방 접근을 HTTP로 확인해 거부면 퇴장 처리 - 구독 오류로 연결이 닫히면 5초 뒤 다시 연결해 1초 간격 반복 방지 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- refetchOnMount: false 제거, staleTime: Infinity는 유지해 무효화된 경우에만 조회 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 취소된 일정 조회는 캐시에 쓰지 않고, 미리보기를 기다린 뒤 한 번에 쓰기 - 본인 일차 변경·여행 날짜 변경·ROOM_SCHEDULES_RESYNCED는 room-schedules 조회를 거쳐 재조회 - 일차 목록을 고치는 동안 전체 재조회가 진행 중이면 다시 시작 - 재조회로 순서가 바뀐 일차는 이웃이 바뀐 구간 경로만 무효화 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 첫 구독·재연결·/home 복귀·방 전환 때 일정·북마크·안읽음 배지를 무효화 - 개인 큐를 구독할 때 놓친 입장 요청 목록을 무효화 - 화면에 있는 조회만 바로 다시 받고, 준비물·가계부·채팅 목록은 대상에서 제외 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 모바일 일정·경로 카드·북마크 폴더·폴더 상세·북마크에서 추가 모달은 처음 불러오기에 실패했을 때만 오류 화면 - 경로 카드는 재조회 실패 뒤에도 받아 둔 일정으로 장소 목록을 계속 읽음 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 무효화된 멤버 목록에는 이벤트를 패치하지 않아 다음 마운트 때 재조회 유지 - 멤버 목록을 받은 적이 없으면 한 명짜리 목록을 만들지 않음 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 데스크톱 같은 일차·다른 일차, 모바일, 일차 이동 모두 드래그 시작 때 순서와 놓을 때 순서를 비교 - 같은 일차 이동은 드롭 시점 목록 대신 드래그한 항목 id로 요청 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 데스크톱·모바일·일차 이동 손잡이는 기존 비활성 표시를 쓰고 목록은 그대로 보임 - 드래그 중에 끊기면 놓아도 저장하지 않고 알림 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- STOMP client·연결 상태를 보낼 때 ref로 읽어 markMessagesRead가 연결마다 새로 만들어지지 않게 함 - 이 함수에 기대는 채팅 최초 기록 조회가 재연결 때마다 다시 시작되던 원인을 없앰 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 기록 조회·최신으로 이동·아래 페이지·따라잡기 중 받은 메시지를 모았다가 결과 반영 뒤 같은 규칙으로 처리(로딩 중 받은 일반 채팅 유실 수정) - 커서+1만 목록 끝에 붙이고, 번호가 비면 afterSequence로 200개씩 끝까지 받음 - 재연결·다른 방에서 돌아올 때 놓친 메시지를 따라잡고, 재연결로 새로 붙은 메시지 앞에 구분선을 두고 그 자리로 스크롤 - 중간 창에서는 새 메시지를 붙이지 않고 같은 id만 갱신, AI 요청은 대기 상태로 되돌리지 않음 - 빈 방은 afterSequence=0 대신 최신 페이지를 받고, 400·403·404는 다시 보내지 않음(네트워크·5xx는 1·2·4초 간격 재시도) - 최초 기록 조회가 재연결로 멈추지 않게 하고, 끝내 실패했으면 재연결 때 다시 받음 - 목록을 sequence 순으로 정렬하고, 최신으로 이동은 목록을 비우지 않고 한 번에 교체 - 메시지·읽음 위치 조회 API가 HttpError를 던지게 함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 서버는 저장 충돌을 재시도한 순서로 sequence를 매겨, 번호 순 정렬이면 1~4가 3·4·1·2로 보였음 - 목록은 작성 시각 순으로 되돌리고, sequence 순서는 빈 번호 판단에만 사용 - 최초 기록·최신으로 이동 결과도 작성 시각 순으로 정렬 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 드래그 시작과 놓을 때의 순서 비교, "일정이 바뀌어서 옮기지 않았어요" 알림 제거(데스크톱·모바일·일차 이동) - 같은 일차 이동은 계속 드래그한 항목 id로 요청 - 연결이 끊긴 동안과 다시 받는 동안의 드래그 잠금은 유지 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



노션
변경 내용
beforeConnect에서 하고, 백엔드 장애(503)로는 로그아웃하지 않음. 배너는 끊긴 지 45초 뒤에 띄우고, 네트워크가 돌아오면 바로 재연결/home복귀) 일정·북마크·안읽음 수를 다시 받고, 재조회가 실패해도 보이던 목록은 유지. 끊긴 동안 권한을 잃은 방은 재연결 뒤 퇴장afterSequence로 끝까지 따라잡음. 첫 기록 로딩 중 받은 채팅을 유지하고, 재연결로 붙은 메시지 앞에 구분선을 두고 스크롤변경 이유
/home이동) 놓친 변경을 복구하지 않아, 옛 일정 기준 드래그로 잘못된 순서가 저장되고 채팅이 사라지거나 15개를 넘으면 누락됨테스트
npm run lintnpm testnpm run build/ws/*차단 → 재연결 간격 1.58 → 2.92 → 5.05초/home복귀 때 일정 조회 1번으로 다른 탭 변경 반영 / 끊긴 동안 받은 채팅을 재연결 직후 표시 / 첫 기록 응답을 늦춰도 그 사이 받은 채팅 유지 / 연달아 보낸 채팅이 보낸 순서대로 표시🤖 Generated with Claude Code