Skip to content

Retry 로직 #1

@dodo849

Description

@dodo849

⚠️ 문제 1. Retrier 동작 순서

  • 현재 동작: CONNECT -> if ERROR -> connect close -> Retrier 실행 -> 이미 socket level에서 close 되어 전송 불가능.
  • 해결방안: ERROR 프레임 받을 시 자동으로 disconnect 되기때문에 connect 시도부터 다시해야한다.

⚠️ 문제 2. Retrier 실행 횟수

상황

  • 현재 동작: Retry시 1번 재시도하고 그래도 에러 발생시 error 리턴.
  • Alamofire 동작: Retry시 해당 retry가 성공할때까지 무한 재시도.

Alamofire동작 방식으로 바꿀 시 문제점

  • 소켓 에러 발생시 정확한 에러 원인별로 분기가 어려움.

  • 해결방안 1. Stomp ERROR frame일때만 retry를 시도한다. 웹소켓 에러는 Log로 표시한다.

    • 단, 문제 1동작이 선행적으로 해결되어야함.
  • 단점: 서버에 에러명세가 명확하지 않을 경우 무한 호출 가능성 -> 단, Alamofire도 이렇게 동작함.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions