Regions
Photon Cloud為您提供全球連接,讓您在世界各地進行低延遲遊戲。
客戶端的初始連接會進入Photon名稱伺服器,該伺服器提供可用區域的列表。
每個地區都是完全獨立的,由一個主伺服器(用於匹配)和遊戲伺服器(主持房間)組成。

下面是可用區域的完整列表。 在介面上,您可以定義哪些區域對客戶可用。
Contents
最佳區域選擇
PUN和Photon Voice依靠實時API層來選擇最佳區域。
C# Realtime API
Photon Realtime可以檢測到要連接的最佳區域,並使您能夠堅持使用該區域。
為了做到這一點,客戶端總是在連接時從名稱伺服器獲取可用區域的列表。 這是用來獲取最新的區域列表,並檢查保存的最佳區域(如果有的話)是否仍然可用。
ping伺服器後,結果被總結為一個字符串,應保存在設備上供以後使用。 摘要字符串包括當前的最佳區域、其ping和當前的區域列表。
如果沒有以前的結果,所有區域都會被ping,這需要多花點時間。 如果有以前的結果,客戶端將檢查。
a. 區域列表是否改變(包括”以前的最佳區域”是否仍然可用的情況)。 b. 如果ping不再是可接受的(>=1.5倍於先前保存的參考值的速度)。
如果這兩種情況都適用,所有地區都會被ping,並挑選出一個新的結果。
使用最佳區域與控制面板中的伺服器端區域過濾器配合得很好。 它使您能夠根據需要改變玩家可用的地區列表。
要訪問地區列表或覆蓋以前的結果,請參考地區的API參考值。
最佳區域考慮因素
可用地區
Photon Cloud在多個地區都有伺服器,分布在世界各地的多個主持中心。
每個Photon Cloud區域都由一個”區域令牌”來標識。
區域標記(或代碼)的字符串是不區分大小寫的。例子:"EU”或”eu”都可以接受,並且指的是同一個歐洲地區。
地區 | 託管在 | 令牌 |
---|---|---|
亞洲 | 新加玻 | 亞洲 |
澳大利亞 | 墨爾本 | au |
中國大陸1 (查看說明) | 上海 | 中國 |
歐洲 | 阿姆斯特丹 | 歐洲 |
印度 | 欽奈 | 在 |
香港 | 香港 | hk |
日本 | 東京 | 日本 |
俄羅斯 | 莫斯科 | ru |
南美洲 | 聖保羅 | sa |
韓國 | 首爾 | kr |
美國東部 | 華盛頓特區 | 美國 |
美國西部 | 聖何塞 | usw |
介面區域過濾
您可以直接從介面上過濾每個應用程式的可用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名稱伺服器必須是中國本地的,否則防火牆可能會阻止流量。 中國的Photon名稱伺服器是”ns.photonengine.cn"。
與中國大陸以外的客戶連接,很可能不會產生好的結果。 另外,從Photon伺服器連接到中國大陸以外的伺服器(如自定義認証、WebHooks、WebRPCs)可能不可靠。
另外,出於法律原因,您需要為中國單獨構建一個應用程式,我們建議使用一個單獨的AppId。 例如,使用一個編譯條件(由您選擇)來改變AppId和Photon名稱伺服器,取決於構建。
請按照您的客戶端SDK的說明,為中國市場制作一個特殊的版本。
Photon Voice
沒有PUN整合(手動語音客戶端連接)
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

使用代碼
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);
}