This document is about: VOICE 2
SWITCH TO

Regions

Photon Cloud為您提供全球連接,讓您在世界各地進行低延遲遊戲。

客戶端的初始連接會進入Photon名稱伺服器,該伺服器提供可用區域的列表。

每個地區都是完全獨立的,由一個主伺服器(用於匹配)和遊戲伺服器(主持房間)組成。

photon cloud regions' connect flows
連接到Photon Cloud地區

下面是可用區域的完整列表。 在介面上,您可以定義哪些區域對客戶可用。

最佳區域選擇

PUN和Photon Voice依靠實時API層來選擇最佳區域。

C# Realtime API

Photon Realtime可以檢測到要連接的最佳區域,並使您能夠堅持使用該區域。

為了做到這一點,客戶端總是在連接時從名稱伺服器獲取可用區域的列表。 這是用來獲取最新的區域列表,並檢查保存的最佳區域(如果有的話)是否仍然可用。

ping伺服器後,結果被總結為一個字符串,應保存在設備上供以後使用。 摘要字符串包括當前的最佳區域、其ping和當前的區域列表。

如果沒有以前的結果,所有區域都會被ping,這需要多花點時間。 如果有以前的結果,客戶端將檢查。

a. 區域列表是否改變(包括”以前的最佳區域”是否仍然可用的情況)。 b. 如果ping不再是可接受的(>=1.5倍於先前保存的參考值的速度)。

如果這兩種情況都適用,所有地區都會被ping,並挑選出一個新的結果。

使用最佳區域與控制面板中的伺服器端區域過濾器配合得很好。 它使您能夠根據需要改變玩家可用的地區列表。

要訪問地區列表或覆蓋以前的結果,請參考地區的API參考值。

最佳區域考慮因素

"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.

可用地區

Photon Cloud在多個地區都有伺服器,分布在世界各地的多個主持中心。

每個Photon Cloud區域都由一個”區域令牌”來標識。

可用區域和令牌的列表:

區域標記(或代碼)的字符串是不區分大小寫的。例子:"EU”或”eu”都可以接受,並且指的是同一個歐洲地區。

地區託管在令牌
亞洲新加玻asia
澳大利亞墨爾本au
中國大陸1 (查看說明)上海cn
歐洲阿姆斯特丹eu
印度欽奈in
香港香港hk
日本東京jp
South AfricaJohannesburgza
南美洲聖保羅sa
韓國首爾kr
TurkeyIstanbultr
United Arab EmiratesDubaiuae
美國東部華盛頓特區us
美國西部聖何塞usw
USA, South CentralDallasussc
1: 中國大陸需要單獨的 AppId 和訂閱。

介面區域過濾

您可以直接從介面上過濾每個應用程式的可用Photon Cloud區域列表。

photon cloud: regions whitelist
過濾Photon Cloud區域

進入介面,然後點擊所選應用程式的”管理",再點擊”編輯"。 您會發現一個輸入字段,您可以在那裡輸入白名單區域的列表,如下所示:

  • 允許的列表應該是一個由分號分隔的地區標記的字符串,例如”eu;us"。
  • 地區標記不區分大小寫,並被定義為這裡
  • 未定義或未識別的區域標記將從列表中被忽略。
  • 空("")或畸形的字符串(如";;;")表示空列表。
  • 空列表意味著所有可用的區域都被允許。

一旦您確認並保存,NameServer將只返回過濾後的區域列表。 因此,客戶應該從該列表中選擇。 考慮到介面的更新可能需要10分鐘。

如何選擇一個地區

美國的用戶如果連接到Photon Cloud美國地區,則延遲最低。簡單。

但是,如果您的用戶來自世界各地,怎麼辦?

您可以

  • **a)**讓遊戲客戶端在不同的Photon Cloud地區進行ping,並預先選擇一個有最佳ping的地區,請閱讀我們的how-to
  • **b)**將客戶端的構建與地區挂鉤,因此來自不同地區的用戶連接到不同的Photon Cloud地區,或者
  • **c)**讓用戶在您的遊戲界面中選擇一個匹配的區域。

另外,您也可以**d)**讓所有用戶連接到同一個區域,如果較高的延遲對您的遊戲來說是可以接受的,例如任何”非實時”遊戲。

所有的Photon Cloud應用程式都可以在所有可用的地區工作,不需要任何額外的費用。 見定價。

Photon Cloud的介面可以讓您監控您的遊戲在各個地區的使用情況,並輕鬆升級或降級您的訂閱計劃。 進入您的介面。

使用中國大陸地區

您需要為您的Photon應用申請進入中國大陸地區的權限。向我們發送電子郵件,以便我們為您的應用ID解鎖。
您不能通過我們的網站訂閱在中國大陸地區使用的付費計劃。 請通過電子郵件與我們聯繫,以獲得任何訂閱的報價。

Photon名稱伺服器必須是中國本地的,否則防火牆可能會阻止流量。 中國的Photon名稱伺服器是”ns.photonengine.cn"。

與中國大陸以外的客戶連接,很可能不會產生好的結果。 另外,從Photon伺服器連接到中國大陸以外的伺服器(如自定義認証、WebHooks、WebRPCs)可能不可靠。

重要:在當前階段,您通過介面對您的應用程式所做的更改不會自動反映在中國的應用程式緩存中。 如果您在那裡有更新請求,請通過電子郵件告訴我們。

另外,出於法律原因,您需要為中國單獨構建一個應用程式,我們建議使用一個單獨的AppId。 例如,使用一個編譯條件(由您選擇)來改變AppId和Photon名稱伺服器,取決於構建。

請按照您的客戶端SDK的說明,為中國市場制作一個特殊的版本。

Photon Voice

沒有PUN整合(手動語音客戶端連接)

C#

void ConnectToChina()
{
    //您也可以直接在Unity編輯器的VoiceConnection.Settings中設置這些值
    //在這種情況下,呼叫VoiceConnection.ConnectUsingSettings(); 而不傳遞參數
    AppSettings chinaSettings = new AppSettings();
    chinaSettings.FixedRegion = "cn";
    chinaSettings.UseNameServer = true;
    chinaSettings.AppIdVoice = "ChinaVoiceAppId"; // TODO: 替換為您自己為中國地區解鎖的語音AppId
    chinaSettings.AppVersion = "ChinaAppVersion"; // 可選的
    chinaSettings.Server = "ns.photonengine.cn";
    voiceConnection.ConnectUsingSettings(chinaSettings);
}

與PUN整合並使用PUN設置

由於PUN已經包含在語音中,我們只需要按照PUN所需的步驟來做。 除非PhotonVoiceNetwork.Instance.UsePunSettings被設置為false,否則Photon Voice將自動連接到相同的伺服器。 在這種情況下,請使用上面所說的手動語音客戶端步驟。

使用PhotonServerSettings

pun 2: photonserversettings for china
PUN 2:中國的PhotonServer設置

使用代碼

C#

void ConnectToChina()
{
    AppSettings chinaSettings = new AppSettings();
    chinaSettings.UseNameServer = true;
    chinaSettings.ServerAddress = "ns.photonengine.cn";
    chinaSettings.AppIdRealtime = "ChinaPUNAppId"; // TODO:替換為您自己為中國地區解鎖的 PUN AppId
    chinaSettings.AppSettings.AppIdVoice = "ChinaVoiceAppId"; // TODO: 替換為您自己為中國地區解鎖的語音 AppId
    chinaSettings.AppVersion = "ChinaAppVersion"; // 可選的
    PhotonNetwork.ConnectUsingSettings(chinaSettings);
}
Back to top