채팅 구현 관련 문의드립니다.

앱을 강제종료시킨 후 (LeaveChannel이 정상적으로 수행되지 않음), 1분 30초가 지나지 않은 상태에서 다시 JoinChannel을 수행하면 이전 세션이 남아 있는 상태로 접속에 성공합니다. (강제종료 후에는 로그인도 다시 수행합니다.)
이렇게 접속하게되면, 강제종료한 시점부터 1분 30초가 되는 순간 OnLeaveChannel에서 본인이 퇴장했다는 콜백이 오지만 (이전 세션 종료됨) 사실상 퇴장은 안한 상태가 됩니다.

본인이 퇴장했다는 메세지 노출을 방지하기 위해서 !IsRemote (본인)에 해당되지 않더라도 닉네임이 같으면 본인이라고 처리했지만, 이것도 OnLeaveChannel에 콜백이 오기 이전에 닉네임을 변경하면 본인이라고 처리가 안되는 상황입니다.

JoinChannel을 수행 할 때, 위같은 상황에 Already Online (1) 에러가 나도록 해주실 수 있을까요?
아니면 OnLeaveChannel 같은 콜백에서 오는 세션값에 indate같은 변하지 않는 값을 포함해 주실 수 있을까요?
아니면 다른 방법이 있을까요? 조언 부탁드립니다.

안녕하세요 개발자님.

다음에 업데이트될 신버전 SDK에서는 강제종료 한 후 다시 같은 채널에 접속을 해도 자기 자신이 퇴장했다는 OnLeaveChannel은 호출이 되지 않도록 수정되었습니다.

허나 뒤끝챗은 닉네임을 키값으로 이용하여 동작하고 있기에 닉네임이 변경될 경우 다른 유저라고 인식되어
닉네임 변경 후 재접속 시 이전 닉네임은 퇴장했다라는 문구가 발생할 수 있습니다.

이점 참고 부탁드리며 해당 현상을 최소화하기 위해 앱 종료 시(OnApplicationQuit() 등 가능한 LeaveChannel을 호출을 통해 채널을 나갈 수 있도록 구현해주시고 추후 업데이트될 SDK를 기다려주시면 감사하겠습니다.

OnApplicationQuit에서는 이미 LeaveChannel을 호출 하고 있지만 그래도 1분30초쯤 후에 OnLeaveChannel 콜백이 오고 있어서요. (이건 저도 원인파악이 더 필요할것 같아요)
그런데 어떤 이유에서든 LeaveChannel이 수행되지 않더라도 중복퇴장은 방지 할 수 있어야 할 것 같아요.
결국 접속시에 혹은 퇴장 콜백에서 현재 접속중인 세션과 세션아이디가 달라도 동일한 사용자임을 알아 볼 수 있는 처리가 필요할 것 같은데, 닉네임을 키값으로 이용해서 이걸 구현하면 무결성적인 측면에서 문제의 소지가 있는 것 같습니다.
물론 ‘종료 - 퇴장콜백이 오기전에 닉네임 변경’ 과 같은 일이 흔하게 발생하지는 않겠지만, 문제의 소지가 있는데 제선에서 해결 방법이 없다는게 아쉽네요.
일단 제 처리방법이 틀린건 아닌 것 같으니 혹시 차후에 라이브중에 위같은 현상이 자주일어난다면 피드백 드리겠습니다. 답변주셔서 감사합니다.