Photon Cloud provides you with global connectivity to allow low latency gaming all around the world.
The initial connection of clients goes to a Photon Nameserver, which provides the list of available regions. Typically, clients connect with "Best Region" selection enabled, which will detect the region with the lowest ping and connect to it (see below).
Each region is completely separate from the others and consists of a Master Server (for matchmaking) and Game Servers (hosting rooms).
The full list of available regions is below. In the Dashboard, you can define which regions should be available for the clients.
Best Region Considerations
"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 the whitelist online to select the ones you want and drop the others or connect to an explicit region.
Photon Cloud has servers in several regions, distributed across multiple hosting centers over the world.
Each Photon Cloud region is identified by a "region token".
Set the region before calling "Connect",
chatClient = new ChatClient(this); chatClient.ChatRegion = regionToken; chatClient.Connect(chatAppId, chatAppVersion, new AuthenticationValues(userID));
Dashboard Regions Filtering
You can filter the list of available Photon Cloud regions per application on the fly directly from the dashboard.
Go to the dashboard and then click "Manage" for a chosen application and then click "Edit". You will find an input field where you can enter the list of whitelisted regions as follows:
- the allowed list should be a string of region tokens seprated by semicolon. e.g. "eu;us".
- region tokens are case insensitive and are defined here.
- undefined or unrecognized region tokens will be ignored from the list.
- empty ("") or malformed string (e.g. ";;;") means empty list.
- empty list means all available regions are allowed.
Once you confirm and save, the operation
GetRegions will return only the filtered list of regions.
Thus clients should select from that list but it's fully possible clients connect to any available region explicitly.
Take into consideration that dashboard updates propagation can take up to 10 minutes.