인게임 서버 접속을 끊으면 오류가 생깁니다.

플레이 중에 비정상 접속 종료 후 재접속시 기존 인게임 서버 접속을 종료하려고 하는데 계속 오류만 뜹니다.

Backend.Match.LeaveGameServer()
를 호출하면 아래 오류가 나타납니다.
그리고 인게임 서버 접속을 종료하지도 못하고요.

BackEnd 관련 다른 호출은 모두 정상인데 접속 종료시에만 유독 BackEnd.Tcp.TpcClient 오류만 Null 오류가 뜨는 이유를 도통 알 수 가 업네요.

  • 프로젝트명 :
  • 뒤끝SDK 버전 : 4.6.0
  • 에러 코드 :

NullReferenceException: Object reference not set to an instance of an object
BackEnd.Tcp.TcpClient.#Ub (BackEnd.Tcp.ErrorInfo #Vb, System.Boolean #Wb, System.Boolean #Xb, System.Boolean #Yb) (at :0)
BackEnd.Tcp.TcpClient.LeaveChannel () (at :0)
BackEnd.Game.GameMatch.LeaveGameServer () (at :0)

안녕하세요

플레이 중 비정상 접속 종료란 것은 게임이 종료된 상황을 말씀하시는 것인가요?

만약 게임이 종료된 후 다시 시작한 경우
Backend.Match.LeaveGameServer 이 함수를 호출할 필요 없이

Backend.Match.IsGameRoomActivate

위 함수로 내가 재접속 할 방(게임) 이 있는 지 확인 후

Backend.Match.JoinGameServer(string serverAddress, string serverPort, bool isReconnect, out ErrorInfo errorInfo)

위 함수의 isReconnect(재접속 여부 플래그)를 true로 두고 접속을 시도하면 정상적으로 접속이 가능합니다.

자세한 사항은 아래 개발자문서를 참고해주세요.

“종료 원합니다. 재접속이 아니라”
“종료 원합니다”
“종료 원합니다”
진행 중인 게임이 존재하는 상태에서 인게임 서버 접속을 “종료” 하고 싶다고요. 재접속이 아니라…

진행 중인 게임 존재하는 상태입니다.

진행 중인 게임이 존재 하는 상태에서 인게임 서버 접속을 “종료"하고 싶은데 “””"“오류”"""""가 뜹니다.

그러니 당연히 서버에 계속 게임이 존재하는 상태로 남아 있는 겁니다.

제가 올린 내용 다시 확인 부탁드려요.

기존에 게임이 존재하는 상태에서 해당게임의 재접속이 아닌
다시 매칭서버에 접속하여 새로운 게임을 진행하고 싶다는 말씀이시죠?

우선 게임의 비정상 접속 종료 라는 것이

어플이 어떠한 이유로 종료되고, 어플을 새로 실행시킨 상황을 말씀하신 것이 맞을까요?

어플을 새로 실행시킨 상황이라면 LeaveGameServer 함수를 호출하지 않아도 되고,
JoinMatchMakingServer 함수로 매칭서버로 접속 시 자동으로 진행중이던 게임에서 종료처리가됩니다.

또한 LeaveGameServer의 경우 클라이언트에서 서버로 소켓연결을 종료하는 함수로 어플을 새로 실행시킨 상황이라면 소켓 연결 자체가 되어있지 않은 상황이기에 에러가 발생할 수 있습니다.