장시간 백그라운드로 앱을 내릴 경우 GetServerStatus의 리턴값 문의

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.7.0
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

지난 번에 알려주신대로 GetServerStatus를 사용해서 서버 연결 상태를 체크하고 있습니다.
현재 GetServerStatus를 20초마다 호출하여 체크하고 있는데요.
네트워크 연결이 끊겼거나, 백그라운드로 앱을 장시간 내린 후 복귀하였을 경우,
GetServerStatus의 리턴값을 잘 모르겠습니다.

가이드에도 리턴케이스는 정상적인 상황밖에 나타나지 않는데요…
다른 리턴값이 있는지 문의 드립니다.

안녕하세요 개발자님,
네트워크의 상태가 일시적으로 불안정하여 호출/응답에 실패할 경우 아래 에러가 리턴되게 되어있습니다.

statusCode : 400
errorCode : HttpRequestException
message : An error occurred while sending the request (2)
Error getting response stream (ReadDone2): ReceiveFailure

백그라운드로 앱을 장시간 내린 후 복귀하는 경우,
메인쓰레드가 작동하지 않아 시간이 멈추게 됩니다.

예를 들어 말씀해주신 것과 같이 GetServerStatus 함수를 20초 주기로 호출하는 경우
GetServerStatus 함수 호출 후 7초가 경과한 상태에서 백그라운드로 앱을 내렸다가 복귀하는 경우,
다시금 13초 뒤에 함수가 호출되는 점 참고해주시면 감사하겠습니다.

추가적으로 지난 2월 5일 502 에러 대응 안내공지를 통해 GetServerStatus 함수의 최소 호출 주기를 한시간을 권장함을 안내드렸습니다.
해당 함수 기능은 최초 로그인 시점에 1회 호출되는것을 감안하고 설계가 이루어졌기에 아래 공지사항을 참고하여 로직을 개선 이용하여주시면 감사하겠습니다.

GetServerTime : 최소 주기 10분 권장
최초 로그인시 받아온 후 메모리에 등록, update때마다 시간을 증가시켜 관리하는 방법을 추천합니다.
(서버에 재요청하는 것은 보조적인 방법으로 최소화)

공지 내용을 이제야 확인했네요.
위 내용을 확인해보니 GetServerTime은 10분 주기로 하고, update 를 사용해 시간을 증가시키라고 하셨는데요…
현재 앱이 백그라운드로 내려갈 경우 GetServerTime을 통해 서버 시간을 가져오고 있습니다.
그리고 앱에 복귀할 경우 다시 GetServerTime을 통해 서버 시간을 가져와 비교를 한 후 오프라인 보상을 지급하고 있습니다.
그런데 시간을 update 로 관리하게되면, 앱을 백그라운드로 내릴 경우 앱이 pause 상태로 들어가서 update 가 돌지 않을텐데, 어떻게 관리를 해야할지 잘 모르겠습니다.
확인 부탁드립니다.

안녕하세요 개발자님.

백그라운드 상태 체크를 하여 오프라인 보상등을 구현하기 위해서는 GerServerTime을 이용하여 구현이 필요할 것 같습니다.

GerServerTime의 호출 빈도를 늘리는 것이 목적이기에 간혈적으로 일어나는 오프라인의 경우, 구현하셔도 상관없습니다.