Kakao i Connect Live 커뮤니티

onDisconnectChannel과 onStateChange

안녕하세요
오늘도 질문의 연속이네요 ^^

내용이 좀 길어서 새로운 글로 작성했습니다

아래글의 댓글로 아래와 같은 내용을 달아 주셨습니다


onDisconnectChannel과 onStateChange의 State==Close간의 차이는
명시적으로 close를 한 경우에는 onDisconnectChannel 이벤트와 onStateChange가 같이 동시에 불려지며,
명시적으로 close를 안 하고 브라우저를 닫은 경우 onStateChange 이벤트만 불려지게 됩니다. 현재 js버전에서는 모든 close에서 두 이벤트를 호출하지만 앞으로는 이러한 구분으로 이벤트 호출이 진행될 예정이니 참고하시기 바랍니다.

위에서 명시적으로 close를 안 하고 브라우저를 닫은 경우 onStateChange 이벤트만 불려지게 된다고 하셨는데
테스트 결과 연결이 성공 한 후 브라우져를 종료 했더니 상대의 onDisconnectChannel이 실행 되었습니다
onDisconnectChannel에 alert 메세지를 넣어 상대의 연결 종료를 알리고 있습니다

그러나 인터넷 연결을 끈었더니 onDisconnectChannel과 onStateChange 모두 호출이 없고
onError: ICEFailedError 이 출력 되었습니다
짧게 인터넷을 끈은 경우에는 재연결이 되지만 몇초 이상 연결이 유실 될 경우 양쪽 모두 onError가 호출되고 있었습니다

그리고 create를 한 사용자는 오류 후에 close가 작동 하는데 connection 한 사용자는 close가 오류가 났습니다

이런 경우는 onError를 체크해서 양쪽 모두 강제로 방에서 내보내야 하는 건가요?
onError: ICEFailedError는 이런 경우 이외에도 발생을 하는 건가요?

onDisconnect는 현재까지는 명시적인 경우와 아닌 경우 모두에서 호출되지만 조만간 명시적 close호출에만 반응하도록 할 예정입니다.
아울러 알수 없는 connection에러는 좀 시간이 걸리기는 하지만 항상 icefailederror가 발생합니다. 하지만 조금이라도 빨리 connection이 끊기는 것을 알려드리기 위해 별도의 close event들을 준비한 것입니다. 때문에 오류 감지의 순서는 다음과 같습니다.
onDisconnect -> onStateChange.STATE.CLOSE or FAIL -> onError입니다.

감사합니다

참고 하겠습니다