01
연결이 돌아와도 참가자 위치가 갱신되지 않음
문제
- 러닝 중에는 Wi-Fi와 모바일 데이터 전환이나 일시적인 음영 지역 때문에 WebSocket이 끊길 수 있습니다. 연결만 다시 맺어도 이전에 보고 있던 위치 topic 구독은 사라지므로, 화면상으로는 달리기가 계속돼도 참가자 위치가 더 이상 갱신되지 않을 수 있었습니다.
해결
- STOMP client에
heartbeatIncoming,heartbeatOutgoing을 설정해 연결 이상을 감지하고,reconnectDelay로 자동 재접속하게 했습니다. - 재접속이 끝나면 현재 활성화된 러닝 모드가 필요한 topic을 다시 구독하도록 연결 생명주기와 화면 생명주기를 분리했습니다. 그룹 러닝의 위치 공유와 개인 러닝의 기록 경로도 따로 두어 불필요한 전송을 막았습니다.