지역

Photon 클라우드는 전 세계에서 낮은 레이턴시 게이밍을 위하여 글로벌 접속을 제공합니다.

클라이언트의 초기 접속은 Photon 네임 서버로 가게 되며, 여기에서는 사용할 수 있는 지역을 제공합니다.

각 지역은 타지역과 완벽하게 분리되어 있으며 마스터 서버(매치메이킹 용)와 게임 서버(호스팅 룸) 이루어져 있습니다.

Photon Cloud Regions' Connect Flows
Connect to Photon Cloud regions

사용할 수 있는 전체 지역은 아래에 있습니다. 관리 화면에서, 클라이언트에서 사용할 수 있는 지역을 정의할 수 있습니다.

목차

최적의 지역 선택

PUN과 Photon Voice는 최적의 지역을 선택하기 위해서 Realtime API 레이어에 의존적입니다.

메인 화면으로

C# Realtime API

Photon Realtime은 연결하기에 가장 적합한 지역을 감지할 수 있으며 해당 지역을 고수할 수 있도록 지원합니다.

이를 위해 클라이언트는 항상 연결할 때 네임 서버에서 사용 가능한 지역 목록을 가져옵니다. 최신 지역 목록을 가져오고 저장된 최적의 지역(있는 경우)이 여전히 사용 가능한지 확인하는 데 사용됩니다.

서버를 ping 한 후 결과는 나중에 사용할 수 있도록 장치에 저장해야 하는 문자열로 요약합니다. 요약된 문자열에는 현재 가장 좋은 지역, 해당 ping 및 현재 지역 목록이 포함됩니다.

이전 세션의 결과가 없으면 모든 지역에 ping이 수행되므로 시간이 더 오래 걸립니다. 이전 결과를 사용할 수 있는 경우 클라이언트는 다음을 확인합니다.

a. 지역 목록이 변경된 경우("이전 최적 지역"이 여전히 사용 가능한 경우입니다)
b. ping이 더 이상 허용되지 않는 경우(>= 이전에 저장한 기준 값보다 1.5배 느림)입니다.

둘 중 하나가 적용되면 모든 지역으로 ping 되고 새 결과가 선택됩니다.

최적의 지역을 사용하면 관리 화면의 서버 측 영역 필터와 함께 사용할 수 있습니다. 플레이어가 온디맨드 방식으로 사용할 수 있는 지역 목록을 변경할 수 있습니다.

지역 목록에 접근하거나 이전 결과를 재정의하려면 지역에 대한 API 레퍼런스를 참조합니다.

메인 화면으로

PUN

PhotonNetwork.ConnectUsingSettings()을 사용할 때 기본적으로 "최적 지역"을 선택합니다.

결과를 플레이어 환경설정에 자동으로 저장하는 것 외에 작업 흐름은 실시간 API와 동일합니다.

가장 좋은 지역은 "스티키"입니다. 이는 일반적으로 클라이언트가 한 지역을 더 오래 사용한다는 것을 의미합니다. 이후 시작 시 이 영역을 다시 ping 합니다. PUN은 유니티의 PlayerPrefs를 사용하여 최적 지역 요약을 자동으로 저장합니다.

편의성 및 디버깅을 위해 현재 "최적 영역" 및 해당 ping이 유니티 에디터의 PhotonServerSettings에 노출됩니다. 그러나 이는 유니티 에디터의 재생 모드에만 유효합니다. 유니티 에디터와 동일한 시스템에서 실행되는 빌드에는 다른 최적 지역이 있을 수 있습니다.

메인 화면으로

최적 지역 고려 사항

"Best Region" option is not deterministic. Sometimes it may be "random" due to little variations or exact same ping calculations.

Theoretically, you could:

  • have the same exact ping to multiple regions from the same device. So its random, if you end up with different regions on clients connected to the same network.
  • different ping values for the same region on different devices (or different retries on the same device) connected to the same network.

For instance, in the case of "us" and "usw" (or "ru" and "rue"), you could either make use of the online regions whitelist to select the ones you want and drop the others or connect to an explicit region.

메인 화면으로

개발 지역

PUN v2.17부터 "Dev Region"이라고 하는 새로운 기능을 추가했습니다. PhotonServerSettings에서 사용할 수 있는 새로운 설정값입니다. 이 설정을 통해, 모든 개발 빌드는 동일한 지역을 사용하여 초기 매치메이킹 문제를 "최적 지역" 선택으로 제거합니다. "개발 빌드"는 유니티 에디터에서 PhotonServerSettings가 생성되고 첫 번째 실행(PlayMode) 중에 "개발 지역"이 설정되면 자동으로 활성화됩니다.

"개발 지역"은 연결하기 위해 PhotonNetwork.ConnectUsingSettings()를 사용할 때, 유니티 에디터와 "개발" 빌드에서만 사용됩니다. 값 제거를 하여 유니티 에디터에서 "개발 지역"과 "개발 빌드"를 사용하지 않도록 할 수 있습니다.

따라서 개발 단계에서 최적의 지역 선택 문제를 방지하려면 최신 FUN 2 버전으로 업데이트해야 합니다. 유니티 에디터에서 한 번 실행합니다(PlayMode를 입력하고 연결). 데모 씬에서도 이를 수행할 수 있습니다. 유니티 에디터에서 첫 번째 연결은 PhotonServerSettings 인스펙터에서 볼 수 있는 "개발 지역"을 설정하게 됩니다. 이 작업이 수행되면, 빌드 및 기기에서의 테스트를 하거나 이전에 수행했다면 새로운 빌드를 할 수 있습니다. "개발 빌드"는 빌드 설정에서 사용할 수 있고 개발 과정 동안에 이 방식이 남아 있어야 합니다. 이 방식으로, 모든 클라이언트(유니티 에디터와 빌드)는 동일한 "개발 지역"에 연결될 것입니다.

출시에 들어가기 전에, 개발 빌드를 사용하지 않도록 하는 것을 잊지 마세요.

노트: 클라이언트가 개발 빌드 또는 유니티 에디터에서 연결되고 다른 클라이언트가 비 개발 빌드에서 연결된 경우 두 클라이언트는 다른 지역에 연결될 수 있습니다.

메인 화면으로

사용할 수 있는 지역

Photon 클라우드에는 몇 개의 지역이 있으며 전 세계적으로 분산된 다수의 호스팅 센터가 있습니다.

각 Photon 클라우드 지역은 "지역 토큰"에 의해 구별됩니다.

특정 지역에 연결하기 위해서는, AppSettings의 PhotonServerSettings에서 코드를 "고정 지역"으로 설정합니다. PhotonNetwork.ConnectToRegion을 사용하고 싶으면, 네트워킹 클라이언트를 수동으로 구성(AppId와 AppVersion)해야 이 케이스에서 PhotonServerSettings를 사용하지 않습니다.

사용할 수 있는 지역과 토큰 목록:

지역 토큰(또는 코드)문자열은 대소문자가 구별됩니다. : "EU" 또는 "eu" 모두 수용하며 동일한 유럽 지역을 나타냅니다.
지역호스트 위치토큰
아시아싱가포르asia
호주멜버른au
캐나다, 동부몬트리올cae
중국 본토1 (지침을 참고하세요)상하이cn
유럽암스테르담eu
인도첸아이in
일본도쿄jp
러시아모스코바ru
러시아, 동부하바로프스크rue
남 아프리카2요하네스버그za
남 아메리카상파울루sa
한국서울kr
USA, 동부워싱턴 D.C.us
USA, 서부산호세usw

1: 중국 본토 지역은 AppId와 구독을 분리해야 합니다. 2: 남 아프리카 지역은 아직 예비 시험 중입니다.

메인 화면으로

관리 화면 지역 필터링

관리 화면에서 바로 직접 어플리케이션별로 사용할 수 있는 Photon Cloud 지역 목록을 필터링할 수 있습니다.

Photon Cloud: Regions Whitelist
Photon Cloud 지역 필터링

관리 화면으로 이동하여 선택한 어플리케이션의 "관리"를 클릭하고 "편집" 을 클릭합니다. 다음과 같이 바람직한 지역의 목록을 입력할 수 있는 입력 필드를 찾을 수 있을 것입니다:

  • 허용된 목록은 세미콜론으로 분리된 지역 토큰 문자열이어야 합니다. 예를 들어, "eu;us".
  • 지역 토큰은 대소문자를 구별하고 여기에 정의되어 있습니다.
  • 정의되지 않았거나 식별할 수 없는 지역 토큰들은 목록에서 무시됩니다.
  • 비어 있는 ("") 또는 잘못된 형식의 문자열 (예, ";;;") 은 빈 목록을 나타냅니다.
  • 빈 목록은 모든 지역을 사용하도록 허용하는 것을 의미합니다.

확인하고 저장하면, GetRegions 오퍼레이션은 필터링 된 지역 목록만을 리턴할 것입니다. 따라서 클라이언트들은 그 목록에서 선택해야 하지만 명시적으로 사용할 수 있는 모든 지역에 연결하는 것이 가능합니다. 관리 화면에서 변경사항을 적용하기까지는 최대 10분까지 걸릴 수 있다는 것을 고려해 주시기 바랍니다.

메인 화면으로

중국 본토 지역에서 사용하기

먼저, Photon 앱에서 중국 본토 지역으로의 접속을 요청해야 합니다. 저희가 귀하의 AppID를 잠금 해제 할 수 있도록 저희에게 메일을 보내주세요.
둘째, 저희 웹사이트를 통해서는 중국 본토에서 사용할 유료 요금제에 가입할 수 없습니다. 이메일로 연락 주세요.

방화벽이 트래픽을 차단할 수도 있으므로, Photon 네임서버는 중국에서만 국한되어야 합니다. 중국 Photon 네임서버는 "ns.photonengine.cn"입니다.

중국 본토 밖의 고객과 연결하는 것은 대부분 좋은 결과를 얻을 수 없을 것입니다. 또한 Photon 서버에서 중국 본토 이외의 서버 (예:사용자 정의 인증, WebHooks, WebRPC)로 연결하는 것은 신뢰할 수 없을 것입니다.

중요: 현재 단계에서, 관리 화면을 통해 앱을 변경하는 것은 중국의 앱 캐시에 자동적으로 반영되지 않습니다. 갱신 요청이 있는 경우에, 우리에게 이메일로 알려주시기 바랍니다.

또한 법적인 이유로 중국을 위해 빌드를 분리하는 것이 필요하며, 별도의 AppId를 사용하는 것을 권장합니다. 예를 들어, 빌드 조건에 따라 AppId와 Photon 네임서버를 변경하려면 컴파일 조건(원하는 경우)을 사용하시기 바랍니다

중국 시장을 위한 특별한 빌드 구성에 대해서는 다음 지침을 따라 주세요:

void ConnectToChina()
{
    // you could also set these values directly in the PhotonServerSettings from Unity Editor
    PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "cn";
    PhotonNetwork.PhotonServerSettings.AppSettings.UseNameServer = true;
    PhotonNetwork.PhotonServerSettings.AppSettings.AppIdRealtime = "ChinaPUNAppId"; // TODO: replace with your own AppId
    PhotonNetwork.PhotonServerSettings.AppSettings.AppVersion = "ChinaAppVersion"; // optional
    PhotonNetwork.PhotonServerSettings.AppSettings.Server = "ns.photonengine.cn";
    PhotonNetwork.ConnectUsingSettings();
}

기술문서 TOP으로 돌아가기