P2P 그룹 및 릴레이 관련 문의

P2P group을 생성한 후 게임에 필요한 패킷을 송/수신하면 백그라운드에서 알아서 첫 통신은 릴레이 서버를 통하게 되고, 내부적으로 사용자도 모르게 peer 간 홀 펀칭 성공 시, p2p 통신을 하는 것으로 알고 있는데요.

  1. 홀 펀칭 하지 않고 릴레이만으로 서비스하고 싶을 경우 옵션을 어떻게 설정해야 되나요?
  2. 기본 설정으로 서비스 할 경우, 릴레이와 p2p 통신이 알아서 내부적으로 교체되나요? 아니면 서버에 접속한 클라이언트가 다른 api 인터페이스를 통해 조절하는 기능이 필요한가요?
  3. 서버에서 p2p group을 생성하면 클라이언트에서 내부적으로 홀 펀칭 후 성공 또는 실패에 대한 이벤트가 서버 측의 콜백 이벤트로 수신될 것 같은데 관련하여 구체적인 내용을 참고하고 싶습니다.
  1. RmiContext.m_maxDirectP2PMulticastCount를 0으로 지정하시고 사용하시면 모두 서버를 경유하여 릴레이되게 됩니다. RmiContext.m_forceRelayThresholdRatio를 1로 셋팅하셔도 같은 효과가 나는 것으로 알고 있지만, m_maxDirectP2PMulticastCount 만을 사용하시는 것을 권해드립니다.

  2. 릴레이에서 P2P로 전환되는 순간을 지정하시고 싶으신 것 같습니다. Proud.CNetServer.SetDirectP2PStartCondition 함수를 통해서 DirectP2PStartCondition enum을 서버에 지정하세요.

  3. 릴레이에서 Direct P2P 상태로 전환되거나 그 반대로 전환이 이루어지는 경우OnChangeP2PRelayState 콜백이 호출되어집니다.