뒤끝 채팅 채널 변경 문제

문의를 남기실 경우 다음 항목을 작성해 주시면 빠른 답변 처리에 도움이 됩니다.

  • 프로젝트명 : Infinite Knight
  • 뒤끝SDK 버전 : 5.2.0
  • 에러 코드 : …

채팅 채널 변경 기능을 추가 하는 중에 해결 할 수 없는 문제가 발생해서 문의 합니다.

현재 10개의 일반 채팅방을 미리 생성해 둔 상황입니다.

채널 목록은 불러 온 상태에서 순차적으로 채널 변경을 하다 보면

간헐적으로 아무 메시지 없이 채널에 접속이 안되는 경우가 발생합니다.

채널 변경은 코루틴으로 아래와 같은 프로세스로 진행합니다.

if (Backend.Chat != null && Backend.Chat.IsChatConnect(ChannelType.Public))
Backend.Chat.LeaveChannel(ChannelType.Public);

연결이 끊어 질 때 까지 대기

2초 대기

ErrorInfo errorInfo = new ErrorInfo();
Backend.Chat.JoinChannel(ChannelType.Public, channelData.serverHostName,
channelData.serverPort, GameSetting.GetChatGroup(), channelData.uuid, out errorInfo);

Backend.Chat.OnJoinChannel 에 성공 메시지가 올 때 까지 대기

이렇게 진행을 하고 있는데, 몇 번 채널을 변경 하다 보면

Backend.Chat.OnJoinChannel 콜백이 들어 오지 않는 경우가 생깁니다.

이후 다시 접속을 시도 하면

Backend.Chat.IsChatConnect(ChannelType.Public) => true 반환
Backend.Chat.LeaveChannel(ChannelType.Public); => Not connected (1). 예외 던짐
Backend.Chat.JoinChannel => JoinChannel Fail : TCP Client is working. 예외 던짐

이러한 경우에서 OnException 콜백이 들어 오는 경우는 없습니다.

위와 같이 진행이 되면서 채널 연결이 되지 않는 상황입니다.

OnSessionListInChannel, OnJoinChannel, OnLeaveChannel

이런 상황이 특정 패턴을 두고 있는 것도 아닌 것 같습니다. 첫번 째 시도에도 이런 경우가 있고, 10번이 넘는 시도 후에도

이런 상황이 발생합니다.

중요한 건 매우 빈번하게 이런 상황이 발생한다는 거구요.

현재 이 상황에 걸리면 게임을 다시 시작 하지 않는 한 해결 방법이 없다는 것이 가장 큰 문제입니다.

채널 연결 상태를 리셋 시키는 기능이라도 필요 할 것 같습니다.

일정 시간을 기다리면 연결이 끊어 질까 20분 넘게 기다려도 여전히 문제는 남아 있습니다.

이 문제를 해결 할 만한 방법이나 제가 놓치고 있는게 있을까요?

안녕하세요 개발자님

우선 이용에 불편을 드려 정말 죄송합니다.

우선 말씀하신 문제점,

채팅 서버 접속을 시도한 후 OnJoinChannel 이 오지 않는 문제 및

아래 상황은

Backend.Chat.IsChatConnect(ChannelType.Public) => true 반환
Backend.Chat.LeaveChannel(ChannelType.Public); => Not connected (1). 예외 던짐
Backend.Chat.JoinChannel => JoinChannel Fail : TCP Client is working. 예외 던짐

금주 SDK를 픽스하여 배포 할 예정입니다.

말씀하신 상황은 채팅서버 접속 실패 시 SDK 에서 적절한 처리를 하지 못해

비정상적으로 연결된 상황에서 발생하는 사이드 이펙트로 보입니다.

이용에 불편을 드려 다시 한번 죄송하다는 말씀 드립니다.

또한 마지막에 말씀해주신데로

채팅서버와의 연결 상태를 리셋시키는 기능 또한 추가로 제공하겠습니다.

피드백 감사합니다.

답변 감사합니다.

저희가 내일 이 기능 업데이트를 진행 할 계획이었습니다.

언제 쯤 핫픽스가 나오는지 알려 주시면 저희가 내일 적용해야 될 지 판단 할 수 있을 거 같습니다.

SDK 업데이트의 경우 내일 예정되어 있으나

내부 일정에 따라 연기될 수도 있습니다.

참고만 부탁 드리겠습니다.

감사합니다.