地区

Photon Cloud光子云为您提供全球连接,让全球各地的低延迟游戏成为可能。

可用区域

Photon Cloud光子云在多个地区都有服务器,分布在全球多个托管中心。

每个Photon Cloud光子云区域由“区域标记”标识。

可用区域和令牌清单:

地区 托管在 令牌
亚洲 新加坡 asia
澳大利亚 墨尔本 au
加拿大,东部 蒙特利尔 cae
中国大陆( 请见本文末) 上海BGP cn
欧洲 阿姆斯特丹 eu
印度 钦奈 in
日本 东京 jp
南美洲 圣保罗 sa
韩国 汉城 kr
美国,东部 华盛顿 us
美国,西部 圣荷西 usw

仪表板区域过滤

您可以直接从仪表板过滤每个应用程序的可用Photon Cloud光子云区域列表。

过滤光子云区域
过滤光子云区域

转到仪表板,然后单击所选应用程序的“管理”,然后单击“编辑”。 您将找到一个输入字段,您可以在其中输入列入白名单的区域,如下所示:

  • 允许的列表应该是用分号分隔的区域标记字符串。 例如“eu; us”。
  • 区域令牌不区分大小写,并在此定义。
  • 未定义或无法识别的区域令牌将从列表中忽略。
  • 空(“”)或格式不正确的字符串(例如“;;”)表示空列表。
  • 空列表表示允许所有可用区域。

确认并保存后, GetRegions操作将只返回过滤的区域列表。 因此,客户端应该从该列表中选择任何可用的区域,但请考虑到仪表盘的更新可能需要10分钟左右的时间(根据网络情况而定)。

使用中国大陆地区

首先,您需要申请访问中国大陆地区的Photon应用程序。 向我们发送电子邮件,以便我们可以为您的AppID解锁它。

为了稳定和可靠的链接,光子NameServer架设在本地,否则连接很可能无法稳定。 中国的NameServer是“ns.photonengine.cn”。

与来自中国大陆以外的客户端通讯很可能不会产生好的结果。 此外,从光子服务器连接到中国大陆以外的服务器(例如,自定义身份验证,WebHooks,WebRPC)可能并不可靠。

重要提示 :在目前阶段,您通过信息中心对应用进行的更改不会自动反映在中国的应用缓存中。 如果您有更新请求,请通过电子邮件通知我们。

同样出于法律原因,您需要为中国单独构建AppId,我们建议使用单独的AppId。 例如,使用条件编译(您选择的)来根据根据条件更改AppId和Photon NameServer。

按照这些说明为中国市场打造特别版本:

光子语音 Photon Voice

1. 将AppId设置为已解锁中国区域的应用程序。 如果你想使用相同的项目,并有不同的Build,可以这样设置:

void Awake()
{
// TODO: replace compile condition with your own
#if CHINA
    PhotonNetwork.PhotonServerSettings.VoiceAppID = "ChinaVoiceAppId"; // TODO: replace with your own AppId
#else
    PhotonNetwork.PhotonServerSettings.VoiceAppID = "nonChinaVoiceAppId"; // TODO: replace with your own AppId
#endif
}

2. 打开“LoadBalancingClient.cs”文件并将NameServerHost设置为“ns.photonengine.cn”:

// TODO: replace compile condition with your own
#if CHINA
    public const string NameServerHost = "ns.photonengine.cn";
#else
    public const string NameServerHost = "ns.exitgames.com";
#endif

由于光子语音中包含光子PUN,因此我们还需要遵循PUN所需的步骤。 光子语音将自动连接到相同的服务器。

PUN

1. 将AppId设置为已解锁中国区域的应用程序。 如果你想使用相同的项目,并有不同的Build,可以这样设置:

void Awake()
{
// TODO: replace compile condition with your own
#if CHINA
    PhotonNetwork.PhotonServerSettings.AppID = "ChinaPUNAppId"; // TODO: replace with your own AppId
#else
    PhotonNetwork.PhotonServerSettings.AppID = "nonChinaPUNAppId"; // TODO: replace with your own AppId
#endif
}

2. 打开“NetworkingPeer.cs”文件并将NameServerHost设置为“ns.photonengine.cn”:

// TODO: replace compile condition with your own
#if CHINA
    public const string NameServerHost = "ns.photonengine.cn";
#else
    public const string NameServerHost = "ns.exitgames.com";
#endif

3. 更新CloudRegionCodeCloudRegionFlag枚举以添加新的“CN”(或“cn”)区域标记,如下所示:

public enum CloudRegionCode
{
    // ...
// TODO: replace compile condition with your own
#if CHINA
    ///<summary>Chinese Mainland, Guang Dong area, cn</summary>
    cn = 11,
#endif
};
[Flags]
public enum CloudRegionFlag
{
    // ...
// TODO: replace compile condition with your own
#if CHINA
    cn = 1 << 10,
#endif
};

4. 使用PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion)连接到中国大陆地区。

// TODO: replace compile condition with your own
#if CHINA
    PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion);
#else
    // TODO: connect to any other region
#endif

 

 

光子云地区

Photon Cloud光子云为您提供全球链路,让全球的低延迟游戏成为可能。

客户端的初始连接转到Photon名称服务器,该服务器提供可用区域的列表。 通常,客户端在启用“最佳区域”(Best Region)选择的情况下进行连接,这个选项将检测具有最低ping的区域并连接到该区域(请参见下文)。

 

每个区域完全彼此分开,并由一个主服务器(用于配对)和游戏服务器(支持房间)组成。

连接到光子云区域
连接到光子云区域

可用区域的完整列表如下。 在您账号的仪表板中,您可以定义客户端可以使用的区域。

 

最佳区域的选择

PUN依靠Realtime API层来选择最佳区域。除了会将结果自动保存到用户的首选项中外,工作流程与以下描述的Realtime API中的工作流程相同。

当您使用PhotonNetwork.ConnectUsingSettings()时,默认情况下会完成最佳区域选择。

Photon Realtime可以检测到要连接的最佳区域,并使您使用该区域。

为此,客户端总是在连接时从名称服务器获取可用区域的列表。此操作一般用于检查所选区域是否可用。

对服务器们执行ping操作后,结果将汇总为一个字符串(String),其将被保存在设备上以备后用。这个摘要字符串包括当前的最佳区域,其ping和当前区域列表。

如果没有发现上一次检测的结果,则将对所有区域执行ping操作,这需要花费较长时间。如果以前的结果可用,客户端将检查该区域是否仍然可用,ping是否仍可接受(延迟不超过之前的1.5倍)以及区域列表是否已更改。如果上述条件任何一条激活,则会对所有区域执行ping操作,然后选择一个新的结果。

使用最佳区域可与仪表板中的服务器端区域过滤器很好地配合使用。它使您可以按需更改玩家可用的区域。

要访问区域列表或覆盖以前的结果,请参考区域相关的API文档。

最佳区域的考量

您需要留意的是,“最佳区域”选项不是完全确定性的。 有时由于变化很小或完全相同的ping结果,它可能是“随机的”。

从理论上讲,您可能遇到如下情况:

  • 同一设备到多个区域获得了完全一样的ping值。 因此,用户在同一个网络下连接到了多个不同的区域,因此其是随机的。
  • 连接到同一个网络中的不同设备到同一个区域的ping值不同(或同一设备上的每次尝试结果不同)。
举例来说,在“ us”和“ usw”(或“ ru”和“ rue”)的情况下,您可以利用在线区域白名单,选择想要连接的区域并避免连结到另一个区域,或者到一个特定的区域。

可用区域

Photon Cloud在多个国家及地区都有服务器,分布在全球多个托管中心。

 

每个Photon Cloud区域由“region token”标识。

要连接到特定区域,请在AppSettings下PhotonServerSettings中,将其代码设置为“ Fixed Region”。 如果要使用PhotonNetwork.ConnectToRegion,则需要手动配置网络客户端(主要是AppId和AppVersion),在这种情况下将不使用PhotonServerSettings。

区域标记(或代码)的字符串不区分大小写。 比如:“ EU”或“ eu”都被接受并且指的是同一欧洲地区。

可用区域和标记列表:

地区 位置 Token
亚洲 新加坡 asia
澳大利亚 墨尔本 au
加拿大,东方 蒙特利尔 cae
中国大陆 上海 cn
欧洲 阿姆斯特丹 eu
印度 金奈 in
日本 东京 jp
俄国 莫斯科 ru
俄罗斯,东方 哈巴罗夫斯克 rue
南美洲 圣保罗 sa
韩国 汉城 kr
美国,东部 华盛顿 us
美国,西部 圣荷西 usw

仪表板区域过滤

您可以运行情况下直接从仪表板(Dashboard)过滤每个应用程序的可用Photon Cloud区域列表。

过滤光子云区域
过滤光子云区域

转到仪表板,然后单击“管理”选定的应用程序,然后单击“编辑”。 您将会看到一个输入字段,您可以在其中输入白名单区域列表,如下所示:

  • 允许的列表应该是由分号分隔的区域令牌的字符串。 例如“eu; us”。
  • 区域令牌不区分大小写,并在此文上方所定义。
  • 未定义或无法识别的区域标记将从列表中被忽略。
  • 空(“”)或格式不正确的字符串(例如“;;;”)表示空列表。
  • 空列表意味着所有可用区域都是允许的。

一旦确认并保存,操作GetRegions将只返回已过滤的区域列表。 因此,客户端应该从列表中选择。 请注意考虑仪表板更新可能需要10分钟或以上。

使用中国大陆地区

首先,您需要一个独立与其他区域的appID,然后 通过我们的在线表单提交您的光子账号,appID及其他信息,以便我们可以为您的AppID解锁国内区域。
 
其次,国内区域的appid将无法直接从仪表盘(dashboard)中进行进行直接的进行付费升级,如果您需要升级您的国内区域AppID,请通过联系我们页面联系我们官方客服为您处理。

为了稳定和可靠的链接,光子NameServer架设在本地,否则连接很可能无法稳定。 中国的NameServer是“ns.photonengine.cn”。

与来自中国大陆以外的客户端通讯很可能不会产生好的结果。 此外,从光子服务器连接到中国大陆以外的服务器(例如,自定义身份验证,WebHooks,WebRPC)可能并不可靠。

重要提示 :在目前阶段,您通过信息中心对应用进行的更改不会自动反映在中国的应用缓存中。 如果您有更新请求,请通过电子邮件通知我们。

同样出于法律原因,您需要为中国单独构建AppId,我们建议使用单独的AppId。 例如,使用条件编译(您选择的)来根据根据条件更改您所需要的AppId和Photon NameServer。

按照这些说明为中国市场打造特别版本:

void ConnectToChina()
{
    PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "cn";
    PhotonNetwork.PhotonServerSettings.AppSettings.UseNameServer = true;
    PhotonNetwork.PhotonServerSettings.AppSettings.AppIdRealtime = "ChinaPUNAppId"; // 替换为您自己的国内区appID
    PhotonNetwork.PhotonServerSettings.AppSettings.Server = "ns.photonengine.cn";
    PhotonNetwork.ConnectUsingSettings();
}

如需了解光子中国区云服务,请查看国内光子云介绍

error: 转摘请联络我们~