CreateP2PGroup 호출에 대한 결과

두 명의 유저가 모두 연결되어 CreateP2PGroup 를 호출 할 때, 서버에서 하고 싶은 작업은 내부적으로 일어나는 홀 펀칭 처리가 완료되어 성공/ 실패 등의 결과를 받는 위치가 궁금합니다.

홀 펀칭 등 프라우드넷에서 처리되고 있는 과정에서 서버 다음 프로세스를 진행하지 않고, 대기한 후에 모두 처리가 끝난 이후에 진행하려는 의도입니다. 대기 없이 넘어가도 통신에 아무 지장이 없을 경우에도 답변 부탁드립니다.

코드를 보면 P2PGroupJoinMemberAckCompleteDelegate라는 델리게이트를 통해서 콜백되는 것 같은데, 두 명의 유저일 경우 각각 2번 호출되어 지는지 그리고 결과/ 실패 말고 result값에는 어떤 값이 올 수 있는지 궁금합니다.

그리고 이 델리게이트를 통해서 콜백되는 것이 아니라면 어떤 방식으로 서버에서 홀 펀칭이 끝난 것을 인지할 수 있을까요 ?

CNetClient.OnChangeP2PRelayState 콜백이 홀 펀칭 시도 결과를 알려줍니다. 홀 펀칭에 성공한 뒤부터는 스텁 함수에서 RmiContext.m_relayed가 false로 바뀝니다.

홀 펀칭 시도 방법은 디폴트로 JIT 방식입니다. Client to Client 첫번째 패킷은 무조건 relay되고 이 패킷을 통해서 홀 펀칭 시도를 시작합니다.