채팅 채널 변경 방법

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

  • 프로젝트명 : 히어로 파이터
  • 뒤끝SDK 버전 : 5.4.0
  • 에러 코드 :

채팅 채널간의 이동(채팅 채널 변경)을 하고 싶은데, 이미 채널에 접속해 있는 상태에서
다른 채널로 이동하는 기능 관련 샘플이 튜토리얼에는 없더군요.

채팅 채널에 접속해 있는 상태에서 JoinChannel을 다른 채널정보로 호출했는데,
DuplicateConnection 에러가 떳습니다.

그래서 LeaveChannel로 채널을 접속을 종료하고, JoinChannel으로 다시 접속을 시도 했더니,
채널에 접속이 되었습니다.

하지만 문제가 있는데, 채널 변경 시에 오류가 발생하여 채팅이 동작을 안하는 경우가 발생한다는 겁니다.

[뒤끝 채팅 채널 변경 문제]

검색을 해보니 이분의 사례가 지금 저와 동일한것 같습니다.
이 글이 2월 20일 글인데 답글에 수정한다고는 했지만, 현재 저는 동일한 문제가 발생하고 있습니다.

채널간의 이동이 깔끔하게 될 수 있는 방법을 알려주십시오.
코드 샘플이 있다면 더 좋겠습니다.

안녕하세요 개발자님,

채팅 채널 변경의 경우, 이미 채널에 접속해 있는 상태에서는 제공되지 않으며
현재 접속중인 채널의 접속을 먼저 종료시킨 이후 접속하는 형태로 이용이 가능합니다.
말씀해주신 바와 같이 LeaveChannel 로 기존 채널의 접속을 종료하고, JoinChannel 로 다시 접속을 시도해주시면 됩니다.

더불어 이 경우, 채널 변경 시에 오류가 발생하여 채팅이 동작을 안하는 경우가 발생한다 말씀해주셨는데
구체적인 에러 정보를 확인하여주시면 담당부서를 통해 확인 후 안내드리도록 하겠습니다.
감사합니다.

다른분 게시글을 링크로 구체적인 예시를 알려드린것 같은데요.
상황이 완전히 동일합니다.

저희가 현재 진행중인 테스트 상황은 다음과 같습니다.

테스트 한 인원은 기능을 개발하고있는 개발자 1인 입니다.

LeaveChannel
접속 종료까지 대기
1초 정도 대기
JoinChannel
접속까지 대기
OnJoinChannel

말씀해 주신대로 LeaveChannel 후에, JoinChannel 으로 채널 변경을 시도 하고 있습니다.
그러나 이 프로세스를 반복하다 보면 콘솔에서도 접속인원이 확인이 안되고,
OnJoinChannel도 콜백이 안오고,
ChatToChannel를 호출하면 Not connected (1)에러가 뜹니다.

다시 채널에 접속 시도를 하면 응답이 없는 상태이며, 가끔 다시 접속이 되곤합니다.

안녕하세요 개발자님

테스트해본 결과, 채널을 여러번 반복 접속/종료 시 응답이 오지않는 오류가 있는 것으로 확인되었습니다.
이부분은 수정하여 새로운 버전의 SDK로 배포하도록 하겠습니다.

이용에 불편을 드려 죄송합니다.

현재 SDK로써는 해당 상황이 발생한다면 채팅서버 접속 초기화함수(Backend.Chat.ResetConnect())를 통해 채팅서버를 초기화해주면 해결되는점 참고해주시면 감사하겠습니다.

ResetConnect를 사용하고 JoinChannel로 다시 호출해주면 채팅방에 접속이 된다는 건가요?

그런 상황이 발생을 했을때, 클라이언트에서는 지금이 비정상적이라는걸 알수있는 방법이 있나요?
채팅 서버에 접속이 정상적으로 되지 않는 상황이지만,
IsChatConnect로 체크해도 true로 리턴하고, JoinChannel를 호출해도 Success가 옵니다.
ResetConnect로 초기화를 해줘야하는 시점이 모호한데,
그것에 대한 사용법도 같이 제시해 주셨음합니다.

그리고 기본적으로 비정상적이라는 것을 알수있는 방법이 있다해도 매번 ResetConnect로 초기화해줄수는
없는 노릇이고, 이 문제가 이슈가 된것이 한달이 넘었는데 근본적으로 빠르게 수정이 되어야할 것 같습니다.

현재 발견된 오류들로 인해 비정상적이라는 것을 명확하게 알기는 어려울 것 같습니다. 죄송합니다.

접속을 요청했으나 응답이 오지 않는 오류는 빠르게 수정하여 새로운 SDK로 배포하도록 하겠습니다.

픽스된 버전에서는 문제가 없어질 것으로 보이나, 비정상적인 접속으로 인해 접속이 안되었음에도 TCP client is working이 발생하거나 접속이 원활히 안될 경우에는 ResetConnect를 이용해주시면 감사하겠습니다.