Regions
Photon Cloud透過在不同地區託管伺服器,在全球範圍內提供低延遲遊戲。
客戶端從我們的Photon名稱伺服器獲取地區清單。在專案的生命週期中,可能會增加新的地區,也可能會棄用和刪除舊的地區。
每個地區都與其他地區完全分開,由後端伺服器和前端伺服器組成。
可用地區清單因產品而異(Fusion、Quantum、Chat等)。
使用地區允許清單,您可以定義每個AppId可用哪些地區(見下文)。
以下是本產品的地區清單。
可用地區
Photon Cloud由多個地區的伺服器組成,分佈在世界各地的多個託管中心。
一些地區伺服器只支援特定的產品和客戶端SDK。這意味著,例如,Fusion客戶端可以使用日本地區,但Chat不能。
每個Photon Cloud地區都由一個「地區權杖」標識,該標識是一個不區分大小寫的短字串。
例如,「EU」或「eu」都被接受,並指稱相同的歐洲地區。
地區 | 託管於 | 權杖 |
---|---|---|
亞洲 | 新加坡 | asia |
歐洲 | 阿姆斯特丹 | eu |
美國東部 | 華盛頓特區 | us |
中國大陸(參見指引) | 上海 | cn |
地區允許清單
地區允許清單允許您直接從儀表板自訂每個應用程式的可用地區。使用最佳區域功能的客戶端將自動調整適應。
透過使用更多或更少的地區,您可以平衡服務品質(當有一個靠近玩家的地區時,往返時間會更好)和對戰配對體驗(更少的地區意味著每個地區有更多的玩家)。
要定義每個應用程式的地區,請打開儀表板,針對所選應用程式按一下「管理」,然後按一下「編輯允許清單」。
您將找到一個輸入欄位,用於輸入允許的地區清單,如下所示:
- 上面列出了每個SDK的可用地區,有時也為行業圈單獨列出。
- 允許清單必須是由分號分隔的地區權杖字串。例如"eu;us"。
- 地區權杖不區分大小寫。
- 未定義或無法識別的地區權杖將從清單中忽略。
- 空("")或格式錯誤的字串(例如";;;")表示允許所有可用地區。
在更改(確認並儲存)後10分鐘內,名稱伺服器將向連線的客戶端發送篩選後的清單。
為避免客戶端衝突,請透過ping連線到「最佳地區」,或確保選擇與地區清單一起收到的區域。
如何選擇地區
如果連線到Photon Cloud US地區,則美國用戶的延遲最低。簡單易懂。
但是,如果您有 來自世界各地 的用戶呢?
選項有..
- a) 讓遊戲客戶端ping不同的Photon Cloud區域,並預先選擇ping效果最好的區域,請閱讀我們的方法。
- b) 分發綁定到某個地區的客戶端組建,因此來自不同區域的用戶連線到不同的Photon Cloud地區或
- c) 讓用戶從您的遊戲的UI中選擇一個匹配的地區。
- d) 如果您的遊戲可以接受更高的延遲,請讓所有用戶連線到同一地區。
所有Photon Cloud應用程式都可以在所有可用地區運行,無需任何額外費用。
Photon Cloud的儀表板允許您監控每個地區的遊戲使用情況,並輕鬆升級或降級您的訂閱計畫。
使用中國大陸地區
Photon名稱伺服器必須位於中國本地,否則防火牆可能會封鎖流量。
中國Photon名稱服務器是「ns.photonengine.cn」。
與中國大陸以外的客戶端連線很可能不會產生好的結果。
此外,從Photon伺服器連線到中國大陸以外的服務器(例如用於自訂身份驗證、WebHooks、WebRPC)可能不可靠。
出於法律原因,您需要為中國單獨組建一個版本,我們建議使用單獨的AppId。
例如,使用編譯條件(由您選擇)而根據組建更改AppId和Photon名稱伺服器。
按照與您的客戶端SDK相對應的說明,為中國市場進行特殊組建。
C#客戶端SDKs
C#
void ConnectToChina()
{
AppSettings chinaSettings = new AppSettings();
chinaSettings.UseNameServer = true;
chinaSettings.ServerAddress = "ns.photonengine.cn";
chinaSettings.AppIdRealtime = "ChinaRealtimeAppId"; // TODO: replace with your own Realtime AppId unlocked for China region
chinaSettings.AppVersion = "ChinaAppVersion"; // optional
client.ConnectUsingSettings(chinaSettings);
}
C++客戶端SDKs
- 將參數
serverAdress
的「ns.photonengine.cn」傳遞給Client::connect()
。 - 確保參數
serverType
保持其預設值ServerType::NAME_SERVER
。
Objective-C客戶端SDKs
- 將參數
serverAdress
的「ns.photonengine.cn」傳遞給EGLoadBalancingClient::connect()
- 確保將參數
serverType
保持為預設值EGServerType_NAME_SERVER
。