LeaveMatchMakingServer 함수 호출 후 재접속 시도 에러 문의

  • 뒤끝 SDK 버전 : 5.9.6
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 : Exception
  • 에러 메시지 :
    Exception System.NullReferenceException: Object reference not set to an instance of an object
    at #xl.#Vtb.#uo (System.IAsyncResult ) [0x00027] in :0
    UnityEngine.Debug:LogErrorFormat (string,object[])

클라이언트 실행 후 처음 LeaveMatchMakingServer 함수를 호출하면, 매치서버 연결 끊는(Leave) 작업은 성공 처리되는데 이후 자동으로 재접속(Join) 시도를 하는것 같고 해당 시도에서 위와 같은 에러가 발생하면서 실패 처리됩니다.

이후에 다시 매치서버 수동 접속 → LeaveMatchMakingServer 함수 호출하면 같은 에러는 발생하지 않습니다.

그래서 두가지 사항에 대해 문의드립니다.

  1. 저희 프로젝트 쪽에서 자체 수정 가능한 에러인지, 아니면 SDK 쪽 에러인지 확인 부탁드리겠습니다.
  2. 최초 Leave 실행 때는 자동 재접속(Join) 처리를 실행하고, 그 이후 Leave 실행 때는 재접속 처리가 실행되지 않는 이유가 있을까요?

안녕하세요 개발자님,
OnSessionOffline 응답에 한해서만 자동으로 재접속을 시도하며,
그 외에는 자동으로 재접속을 시도하지 않습니다.

Backend.Match.OnLeaveMatchMakingServer = (LeaveChannelEventArgs args) =>   {
try {
   }
   catch(Exception) {
   }
}

핸들러 내부를 try문으로 수정하고, 다음 문구에서도 에러가 호출되는지 확인해 주시면 감사하겠습니다.

Backend.Match.OnException(e) += {
   Debug.LogError("뒤끝 매치 에러 : " + e);
};
  1. OnLeaveMatchMakingServer 응답 내부에서 발생하는 에러가 아닙니다. 앞서 언급드렸듯이 Leave 작업 자체는 성공처리됩니다.

  2. 최초 Leave 작업 성공 이후에 뒤끝매치 자체적으로 자동으로 다시 Join 요청을 보내고 있습니다. 이건 제 프로젝트에 문제가 있을 가능성을 고려해서, 별도의 테스트 프로젝트를 작성해서 딱 뒤끝 + 뒤끝매치만 간단하게 세팅해서 재차 확인한 사항입니다. 이걸 "재접속 요청"이라고 표현하는지는 모르겠는데 Leave 후에 Join 요청을 다시 보내고 있는건 확인했습니다.

  3. 다시 보내진 Join 요청의 콜백 응답에서 에러가 발생하는듯하고, 각각의 콜백에서 찍힌 로그는 아래와 같습니다.

(1) OnException
OnEventMatchException : Exception System.NullReferenceException: Object reference not set to an instance of an object
at #xl.#Vtb.#uo (System.IAsyncResult ) [0x00027] in :0
UnityEngine.Debug:LogErrorFormat (string,object[])
BackEndMatchManager:OnEventMatchException (System.Exception) (at Assets/Scripts/BackEndMatchManager.cs:82)
BackEnd.RealTime.GameMatch:#jt (System.Exception)
#xl.#Vtb/#7Rb:#Qp ()
#xl.#Vtb:#qn ()
#xl.#Vtb:#rn ()
#xl.#Vtb:Poll ()
BackEnd.RealTime.GameMatch:Poll ()
BackEndMatchManager:Update () (at Assets/Scripts/BackEndMatchManager.cs:37)

(2) OnJoinMatchMakingServer
<<<–OnEventMatchMakingServerJoin : Category: Exception, Detail: Exception, SocketError: Success, Reason: Object reference not set to an instance of an object
UnityEngine.Debug:LogFormat (string,object[])
BackEndMatchManager:OnEventMatchMakingServerJoin (BackEnd.Tcp.JoinChannelEventArgs) (at Assets/Scripts/BackEndMatchManager.cs:49)
BackEnd.RealTime.GameMatch:#6s (BackEnd.Tcp.JoinChannelEventArgs)
#xl.#Vtb/#gp:#3o ()
#xl.#Vtb:#qn ()
#xl.#Vtb:#rn ()
#xl.#Vtb:Poll ()
BackEnd.RealTime.GameMatch:Poll ()
BackEndMatchManager:Update () (at Assets/Scripts/BackEndMatchManager.cs:37)

남겨주신 내용 관련하여 상세 확인 후 안내드릴 수 있도록 하겠습니다.
확인에 다소 시간이 소요될 수 있는 점 양해해 주시면 감사하겠습니다.