앱을 강제로 종료 후 재접속 시 채팅방에 다중접속 됩니다.

혹시 해결 방법없을까요?
닉네임이 같은사람 2명으로 나옵니다.

안녕하세요 개발자님

앱을 강제종료하여 채팅서버와 정상적으로 세션이 종료되지 않은 경우

해당 현상이 발생할 수 있습니다.

우선 그렇게 종료된 세션(유저)의 경우 일정시간이 지난 후 자동으로 채팅서버에서 퇴장 처리가 되게 됩니다.

다만 퇴장처리 되기 전까지는 개발자님께서 말씀하신 것처럼 닉네임이 동일한 유저가 2명 표시될 수도 있는데요,

이를 해결하기 위해서는 아래 2가지를 해보시는 것을 추천드리겠습니다.


1

유니티 OnApplicationQuit 함수 내부에 채팅서버 접속 종료 함수 선언


2

세션리스트에 중복된 닉네임이 존재하면 중복된 것은 UI에 표시하지 않도록 처리

이 때 세션리스트에 중복된 닉네임이 존재해도 해당 세션의 세션아이디는 모두 다를 것 입니다.
(닉네임은 동일해도 세션아이디는 모두 다를 것 입니다.)

이전 세션의 정보가 서버에서 퇴장처리 될 때 일반 유저가 나간 것 처럼 OnLeaveChannel 함수가 호출되기 때문에 기존에 로직과 동일하게 해당 닉네임의 유저를 무조건 퇴장처리하는 것이 아닌

세션아이디와 닉네임을 비교하여 모두 일치하는 유저를 퇴장처리하시면 될 것 같습니다.