인게임 재접속 Not connected

상황 설명

  1. 매칭 기능을 통해 인게임 접속. 플레이 잘됨
  2. 일시정지 테스트를위해 Unity를 몇초간 일시정지
  3. 재생시 Backend.Match.OnSessionOffline 호출 확인
  4. 이탈 유저가 자신일 경우 Backend.Match.IsGameRoomActivate()로 재접할 게임 체크
  5. Backend.Match.JoinGameServer()로 재접 시도. 리턴 True 확인
  6. SendDataToInGameRoom() 호출시 Exception: Not connected. 에러 발생

Not connected 문의를 찾아봐도 대부분 뒤끝 채팅 문의였고, 재접속 관련 문의가 없어서 작성합니다.
무슨 문제일까요

안녕하세요 개발자님,
Backend.Match.IsGameRoomActivate()로 활성 게임룸 확인 후
Backend.Match.JoinGameServer()를 호출했을 때 true를 리턴 받았다면,
정상적으로 게임 서버 접속 요청이 이루어진 것입니다.

이후 반드시 Backend.Match.OnSessionJoinInServer 이벤트가 호출되어야 하며,
이 이벤트가 호출된 이후에만 SendDataToInGameRoom()을 사용할 수 있습니다.

OnSessionJoinInServer 이벤트가 정상적으로 호출된 이후 SendDataToInGameRoom 를 진행하셨는지 확인해 주시면 감사하겠습니다.

물론 OnSessionJoinInServer 이벤트가 호출될 때 Log를 찍게 해두고 작업을 해두었습니다만
JoinGameServer 리턴 True는 확인되도
해당 이벤트는 호출이 안되고있습니다.

가능성

  1. 혹시 인게임 서버에서 이탈(OnSessionOffline 확인)하고 나면 이벤트가 초기화 수도 있나요
  2. JoinGameServer 에서 isReconnect 항목이 true일때는 호출이 안되나요?
  3. 테스트중이라 4인매치지만 샌드박스모드 1인으로 접속한 상태인데 마지막 1명이 튕겨서 생기는 문제인가요?

관련 내용 상세히 확인하여 안내드릴 수 있도록 하겠습니다.

확인 과정에서 테스트를 진행하신 매치 카드의 정보가 필요하여 정보 요청드립니다.
테스트를 진행하시는 프로젝트 정보 및 매치카드 정보 요청드립니다.

다른 작업하느라 답이 늦었습니다.

다른 계정의 프로젝트인데 어떻게 공유해드리면 될까요
매치 정보는
Test
Point
개인전
2025-04-29T08:27:07.136Z
입니다

프로젝트 명을 공유해주시면 됩니다.

문의 당시 게시물 작성시 기본 양식으로 제공되는 내용을 최대한 누락 없이 작성해 주시면 보다 빠른 응대가 가능하니 참고 부탁드립니다.

가능하면 프로젝트 정보를 공개적으로 나타내고 싶지 않았습니다.
지금 작성중인 계정은 개인 계정이고
프로젝트 관리 계정은 관리자 권한 받은 계정이라 커뮤니티 입장이 안되더라구요.
프로젝트 명은 - 입니다.

공유 감사합니다, 프로젝트 명은 바로 삭제처리하였습니다.
help@backnd.com 을 통해서도 문의가 가능하니 정보 공개가 꺼려지시는 경우 해당 경로로 문의해 주시면 감사하겠습니다.

매치 관련 내용은 확인 후 안내드릴 수 있도록 하겠습니다.

기다려 주셔 감사합니다. 확인 내용 안내드립니다.

인게임 서버에서 플레이 중에 네트워크 연결이 끊기면
게임 Session이 끊긴 후, 상황에 따라 인게임 서버와 연결이 뒤늦게 끊기는 상황이 발생할 수 있습니다.

이는 내부적으로 재연결을 시도하다가 타임아웃에 걸리는 상황이 발생하는 것으로
만약 연결 끊김 이벤트인 OnSessionOffline 콜백에서 바로 재접속을 하게 되면
뒤늦게 발생한 타임아웃으로 재연결되었던 인게임서버 접속이 다시 종료되는 상황이 발생할 수 있습니다.

따라서 LeaveGameServer()를 호출하여 인게임 서버 접속을 종료하고
재접속을 진행하시면 정상적으로 플레이 중인 게임 Session에 접속 가능합니다.

추가로 JoinGameServer 호출 시,
리턴값으로 전달되는 true는 실제 서버 연결이 완료된 것이 아니며 네트워크 통신을 위한 소켓 연결만이 완료된 것입니다.
실제로 서버에 연결되는 것은 OnSessionJoinInServer로 콜백이 Success로 전달되었을 때입니다.
아래 가이드 내용 참고하여 주시면 감사하겠습니다.

좋아요 1