인게임 서버 재접속 함수

게임 도중 클라이언트가 종료되거나 네트워크 연결이 원활하지 않아 접속이 끊어졌을 때 인게임에 재접속하기 위한 함수들입니다.
재접속이 가능한 상태, 불가능한 상태 관련해서는 해당문서를 참고해주세요.

재접속 가능 여부 체크하기

유저가 진행중이던 게임이 있는지 체크하는 함수입니다.
재접속이 가능한 게임이 존재할 때 해당게임의 서버주소, 서버포트, 매치타입, 매치모드타입, 룸토큰이 반환됩니다.

동기

IsGameRoomActivate() -> BackendReturnObject

//example
Backend.Match.IsGameRoomActivate();

비동기

IsGameRoomActivate(Function callback) -> void

//example
BackendAsyncClass.BackendAsync(Backend.Match.IsGameRoomActivate, () =>
{
    //todo
});

결과값 예시

{
    {
        serverPublicHostName  : { "인게임 서버 주소" },
        serverPort : { "인게임 서버 포트" },
        roomToken : { "룸 토큰" }
        matchType : { "1" }, // 해당 string 값을 byte로 타입캐스팅 후 MatchType으로 타입캐스팅 후 사용해야 합니다.
        matchModeType : { "1" }, // 해당 string 값을 byte로 타입캐스팅 후 MatchModeType으로 타입캐스팅 후 사용해야 합니다.
    },
    {
        serverPublicHostName: [string],
        serverPort: [string],
        roomToken : [string],
        matchType: [string],
        matchModeType: [string],
    },
}

Return case

  • 재접속 가능한 게임이 있을 때
    StatusCode : 200

  • 재접속 가능한 게임이 없을 때
    StatusCode : 404
    ErrorCode : NotFoundError
    Message : room token을 찾을 수 없을 때

인게임 서버에 재접속하기

유저가 게임중이던 실시간 게임 룸에 재접속합니다.

안내
  • JoinGameServer 함수가 true로 리턴되고, ErrorInfo 또한 Success로 리턴되었을 경우 인게임서버와 소켓연결에 성공했다는 것이고, 유저 인증 등의 작업은 이루어지지 않은 상태입니다.
  • 반드시 이벤트 핸들러를 통해 인게임 재서버 접속이 성공했는지 한번 더 체크해야 합니다.
  • JoinGameServer(string serverAddress, string serverPort, bool isReconnect, out ErrorInfo errorInfo) -> bool
    
    //example
    ErrorInfo errorInfo;
    Backend.Match.JoinGameServer(serverAddress, serverPort, true, out errorInfo);

    Parameters

    ValueTypeDescription
    serverAddressstring인게임 서버 주소 (IsGameRoomActivate 전달받은 서버 주소)
    serverPortushort인게임 서버 포트 (IsGameRoomActivate 전달받은 서버 포트)
    isReconnectbool재접속 여부 (true)
    errorInfoErrorInfo성공/실패 정보

    Error cases

    • 인게임 서버 재접속에 성공한 경우
      ErrorInfo.Category : Success

    • 인게임 서버 재접속에 실패한 경우
      ErrorInfo.Category : Exception or SocketOperationError
      ErrorInfo.Reason : 접속 실패에 대한 이유