매칭 서버 이벤트 핸들러

매칭 서버 함수 호출에 대한 응답은 비동기로 작업이 진행되며 아래의 이벤트 핸들러로 매칭 관련 이벤트들이 콜백 됩니다.

이벤트 수신

아래의 핸들러를 사용하기 위해서는 이벤트 수신이 우선되어야 하며, 이 메소드에서 수신된 이벤트들을 처리합니다. 리턴되는 값은 처리된 이벤트 개수입니다.

주의
매치 서버 이벤트를 수신하기 위해서 항상 Update()에서 Poll()을 호출해야 합니다.
Poll() -> int

// example
Backend.Match.poll();

매칭 서버 접속에 성공했을 경우

OnJoinMatchMakingServer(JoinChannelEventArgs args) => {}

//example
Backend.Match.OnJoinMatchMakingServer(args) += {
    // TODO
};

JoinChannelEventArgs

ValueTypeDescription
ErrInfoErrorInfo에러 정보
SessionInfoSessionInfo접속 세션 정보

Return case

  • 매칭 서버 접속에 성공한 경우
    ErrInfo : ErrorInfo.Success

  • 매칭 서버 접속에 실패한 경우
    ErrInfo.Category : Exception
    ErrInfo.Reason : 접속 실패에 대한 이유

매칭 서버와 접속 종료했을 경우

OnLeaveMatchMakingServer(LeaveChannelEventArgs args) => {}

//example
Backend.Match.OnLeaveMatchMakingServer(args) += {
    // TODO
};

LeaveChannelEventArgs

ValueTypeDescription
ErrInfoErrorInfo에러 정보
SessionInfoSessionInfo접속 세션 정보

Return case

  • 매칭 서버와 정상적으로 접속에 종료한 경우
    ErrInfo.Category : ErrorCode.Success
    ErrInfo.Detail : ErrorCode.DisconnectFromLocal

  • 매칭 서버에서 비정상적인 이유로 클라이언트와의 연결을 강제로 끊은 경우
    ErrInfo.Category : ErrorCode.Exception
    ErrInfo.Detail : ErrorCode.DisconnectFromRemote

  • 콘솔에서 생성하지 않은 매치타입 & 매치유형으로 매칭을 신청했을 때
    ErrInfo.Category : ErrorCode.DisconnectFromRemote
    ErrInfo.Detail : ErrorCode.Exception
    ErrInfo.Reason : boost::bad_format_string: format-string is ill-formed

매칭 신청에 성공 혹은 실패 했을 경우, 매칭에 성사되었을 경우

OnMatchMakingResponse(MatchMakingResponseEventArgs args) => {}

//example
Backend.Match.OnMatchMakingResponse(args) += {
    // TODO
};

MatchMakingResponseEventArgs

ValueTypeDescription
ErrInfoErrorCode에러 정보
ReasonString에러 정보
AddressString매칭 성공 시 접속할 인게임 서버 주소
Portushort매칭 성공 시 접속할 인게임 서버 포트
TokenString매칭 성공 시 접속할 인게임 룸 토큰

Return case

  • 매칭 신청에 성공했을 때
    ErrInfo : ErrorCode.Match_InProgress
    Reason : string.Empty

  • 매칭이 성사 되었을 때
    ErrInfo : ErrorCode.Success
    Address : 인게임 서버 주소
    Port : 인게임 서버 포트
    Token : 인게임 접속을 위한 룸 토큰

  • 매칭 신청을 취소했을 때
    ErrInfo : ErrorCode.Match_MatchMakingCanceled

  • 잘못된 매치 타입으로 매칭을 신청했을 때
    ErrInfo : ErrorCode.Match_InvalidMatchType

  • 잘못된 매치 모드 타입으로 매칭을 신청했을 때
    ErrInfo : ErrorCode.Match_InvalidModeType

  • 잘못된 요청을 했을 때
    ErrInfo : ErrorCode.InvalidOperation
    Reason : 에러 상황에 대한 이유

  • 매칭이 성사되었으나 서버에서 인게임 룸 생성에 실패했을 경우 (다시 매칭을 신청해야 합니다.)
    ErrInfo : ErrorCode.Match_MatchMakingCanceled
    Reason : FDM 코드 리턴

매칭 관련 내부 기능에 예외가 발생한 경우

OnException(Exception e) => {}

//example
Backend.Match.OnException(e) += {
    // TODO
};

Parameter

ValueTypeDescription
eException관련 예외 내용