Kakao i ConnectLive Q&A 게시판

onRetry 메서드 관련 질문입니다

예제에서는 RemonCast 인스턴스에서 onRetry 메서드를 사용하는 것 같은데 메서드 정의가 되지 않은 문제가 있습니다. ! RemoteMonster cocoapod 버전은 최신 버전으로 유지 중입니다.

  • RemoteObserver 객체 초기화도 안되는데 이 부분도 좀 알려주세요.! ㅠㅠ

onRetry 콜백은 sdk 에서 제공하지 않는 콜백입니다.
RemoteObserver라는 객체 역시 sdk 쪽에선 제공하지 않는 객체인데,
조금 더 상세한 내용을 올려 주시면 확인이 가능할 것 같습니다.
샘플은 일부 버전별 차이가 있을 수 있으므로, BaseExample 소스를 참고 하셔야합니다.

아하 그렇군요. onRetry 콜백과 RemoteObserver 객체를 사용하려면 어떻게 해야 하나요?
iOS에선 사용할 수 없는 기능들인가요??
BaseExample 소스에는 onRetry와 관련된 소스는 없어서 여쭙니다.

FPS품질 저하나 Media Health Report(iOS에서 찾지 못함) 품질 저하 시 onRetry 콜백을 통해 컨트롤 하려고 했는요. onRetry 콜백이 sdk 에서 제공을 하지 않아서 사용 방법에 대해서 질문드립니다.

모바일 플랫폼의 경우 onRetry 와 onClose 간에 차이가 없어 별도 제공하고 있지는 않습니다. 나머지 이벤트들도 콜백 형태로만 제공됩니다.
상태 정보는 onStat 콜백을 통해 제공되며, 특정 품질 이하로 상태가 유지되는 경우 close 후 다시 접속하는 형태로 구성이 되어야 할 것으로 보이는데요.
접속이 끊어지는 경우에도 onError, onClose 콜백이 호출되는데, 이 경우에도 다시 접속을 시작해야 합니다.

2 Likes

네 감사합니다.

추가적으로 close() 호출 후에 다시 접속을 시도하려면 onClose콜백의 closedType 중에 .MINE을 제외한 캐이스에서 join(chId) 메서드를 호출해주면 될까요? 연결이 정상적으로 해제되고 다시 연결할 수 있는 상태까지의 시간은 있을까요?!

Chance-L! 죄송합니다 추가로 질문을 드립니다. ㅠㅠ

  1. onError 콜백의 타입 중에는 강제로 close()를 해줘야 할 에러가 있자나요? 제가 알기론 그때 sdk에서 자동으로 close()를 해주지 않는걸로 알고 있는데 맞나요?

  2. 1번 질문의 답변이 자동으로 해주지 않는다면 강제로 close() 해줘야 할 에러를 만나서 close()를 한다면 onClose 콜백 시에 .MINE으로 오나요?

  3. 레퍼런스에서 onClose의 콜백 타입 4개의 정확한 경우를 찾지 못해서 그런데 알 수 있을까요?
    .MINE이 캐스터나 뷰어에 의해 close()된 경우라고만 유추하고 있습니다.

  4. 에러 케이스 중에 자동으로 close()가 되는 경우는 있을까요?
    .MINE 이 캐스터나 뷰어에 의해 close() 됐다면 다시 재연결 시킬 필요가 없는데, 다시 접속을 해야하는 경우는 나머지 타입이 될텐데 이 나머지 타입이 불리는 경우가 궁금합니다.

네이티브와 웹간에 종료 프로세스가 차이가 있습니다.

iOS의 경우 sdk가 자동으로 close 하고, onClsoe 이벤트를 발생시킵니다.
onError의 종류에 따라 별도의 명시적인 close 처리는 필요하지 않습니다.

onClose 콜백이 호출되면 sdk 내부적으로 종료 처리를 하며, 이미 연결이 해제가 완료된 상태입니다.
말씀하신 mine 을 제외한 케이스에서 새로운 연결을 진행하시면 될 것 같습니다. 혹은 onError -> onClose 순서로 콜백이 발생되므로, onError 에서 해당 에러를 저장해 두고, onClose에서 저장된 에러가 있는지 체크하는 방법도 가능할 것 같네요.
(onError -> onClose 순서로 진행되므로, onError에서는 에러를 확인 및 저장해 두고, 실제 UI 처리는 onClose 에서 일원화해 수행)

추가사항으로 이미 close된 RemonCast 객체를 그대로 사용해 다시 join 은 불가능하므로, 새로운 RemonCast 객체를 생성해서 연결하셔야 합니다.
재 접속이 아니라 기존 연결은 정리하고, 새로운 연결을 수행한다고 이해하시면 될 것 같습니다.

1 Like

정말 감사합니다.!!!

그럼 안드로이드의 입장에서 제가 바로 위에서 드린 질문에 대한 답을 해주실 수 있으신가요? ㅠㅠㅠ
안드로이드에서도 자동으로 close 한다면 그 이후의 답은 동일할 것 같습니다…!!

안드로이드도 같은 시나로오로 구현되어 동일 할 것으로 생각되지만 현재 버전을 기준으로는 명확히 말씀 드리진 못하겠네요.
그 동안 sdk 업데이트 등으로 변경이 되었을 수도 있습니다.

방송 수신 중 단말 네트웍 차단 등으로 onError 와 onClose 가 연속해 전달되는지 한번 확인해 보시고, 차이가 있는 경우 안드로이드쪽으로 문의를 남겨 주시면 좋을 것 같습니다.

2 Likes