地区
Photon Cloud 为您提供全球连接性,允许全世界的低延迟游戏。客户端的初始连接将连接到Photon Name Server,该服务器提供可用区域的列表。每个区域完全独立于其他区域,由主服务器(用于配对)和游戏服务器(主机室)组成。
下面是可用区域的完整列表。在仪表板中,您可以定义哪些区域应可供客户端使用。
最佳区域选择
PUN和Photon Voice依赖于实时API层来选择最佳区域。
C#实时API
Photon Realtime可以检测到要连接的最佳区域,并使您能够保持在该区域。为此,客户端总是在connect时从名称服务器获取可用区域的列表。它用于获取最新的区域列表,并检查保存的最佳区域(如果有)是否仍然可用。
Ping服务器之后,结果以字符串的形式汇总,并保存在设备上以供以后使用。摘要字符串包括当前最佳区域、其ping和当前区域列表。如果没有上一个会话的结果,所有区域都将被ping,这需要更长的时间。如果以前的结果可用,客户端将检查:
- 如果区域列表已更改(如果“上一个最佳区域”仍然可用,则覆盖这种情况)
- 如果ping不再可接受(>=比先前保存的参考值慢1.5倍)
如果其中任何一个适用,所有区域都将被ping并选择一个新的结果。
使用最佳地区(Best Region)可以很好地与仪表板中的服务器端区域过滤器配合使用。它允许您根据需要更改玩家可用的区域列表。要访问区域列表或覆盖以前的结果,请参阅区域的API参考。
最佳区域考虑
“Best Region”选项不是确定性的。有时它可能是“随机”的,因为很少的变化或完全相同的ping计算。
理论上,你可以:
- 从同一个设备对多个区域执行相同的ping操作。因此,如果客户端上的不同区域连接到同一网络,那么这是随机的。
- 连接到同一网络的不同设备(或同一设备上的不同重试)上同一区域的不同ping值。
例如,在“us”和“usw”(或“ru”和“rue”)的情况下,您可以使用联机区域白名单来选择您想要的区域并删除其他区域,或者连接到一个显式区域。
可用区域
Photon Cloud 在多个地区都有服务器,分布在世界各地的多个托管中心。
每个Photon Cloud区域由“region token”标识。可用区域和令牌列表(不区分大小写):
Region | Hosted in | Token |
---|---|---|
Asia | Singapore | asia |
Australia | Melbourne | au |
Canada, East | Montreal | cae |
Chinese 中国大陆地区需要单独的AppId和订阅 | Shanghai | cn |
Europe | Amsterdam | eu |
India | Chennai | in |
Japan | Tokyo | jp |
Russia | Moscow | ru |
Russia, East | Khabarovsk | rue |
South Africa | Johannesburg | za |
South America | Sao Paulo | sa |
South Korea | Seoul | kr |
USA, East | Washington D.C. | us |
USA, West | San José | usw |
仪表板区域筛选
您可以直接从仪表板实时过滤每个应用程序的可用光子云区域列表。
转到仪表板,然后单击所选应用程序的“Manage”,然后单击“Edit”。您将找到一个输入字段,您可以在其中输入白名单区域的列表,如下所示:
- 允许的列表应该是一个由分号分隔的区域标记字符串。例如 "eu;us".。
- 区域标记不区分大小写。
- 未定义或无法识别的区域标记将从列表中忽略。
- 空(“”)或格式错误的字符串(例如“;;;”)表示空列表。
- 空列表表示允许所有可用区域。
确认并保存后,GetRegions操作将只返回过滤后的区域列表。因此,客户端应该从这个列表中选择,但是客户端完全有可能显式连接到任何可用的区域。注意,仪表板更新传播最多时需要10分钟。
中国大陆地区
您需要请求访问中国大陆地区。请给我们发一封电子邮件,这样我们就可以为你的AppID解锁了。目前不能通过我们的网站订阅在中国大陆地区使用的付费计划。请通过电子邮件联系我们,以便接收任何订阅的报价。
重要提示:在当前阶段,您通过仪表板对应用程序所做的更改不会自动反映在针对中国的应用程序缓存中。如果您有更新请求,请通过电子邮件通知我们。
Photon Name Server 必须在中国本地,否则防火墙可能会阻止流量。Chinese Photon Name Server 是 "ns.photonengine.cn"。与中国大陆以外的客户建立联系很可能不会产生好的结果。另外,从Photon服务器连接到中国大陆以外的服务器(例如,自定义身份验证、WebHooks, WebRPCs)可能不可靠。另外,出于法律原因,您需要在中国使用单独的版本,我们建议您使用单独的AppId。例如,使用编译条件(您可以选择)根据构建更改AppId和光子名称服务器。按照与您的客户机SDK相对应的说明,为中国市场进行特殊构建。
Photon Voice
Without PUN integration
void ConnectToChina()
{
// you could also set these values directly in the VoiceConnection.Settings from Unity Editor
// in that case call voiceConnection.ConnectUsingSettings(); without passing parameter
AppSettings settings = new AppSettings();
settings.FixedRegion = "cn";
settings.UseNameServer = true;
settings.AppIdVoice = "ChinaVoiceAppId"; // TODO: replace with your own AppId
settings.AppVersion = "ChinaAppVersion"; // optional
settings.Server = "ns.photonengine.cn";
voiceConnection.ConnectUsingSettings(settings);
}
With PUN integration and using PUN settings
void ConnectToChina()
{
// you could also set these values directly in the PhotonServerSettings from Unity Editor
PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "cn";
PhotonNetwork.PhotonServerSettings.AppSettings.UseNameServer = true;
PhotonNetwork.PhotonServerSettings.AppSettings.AppIdRealtime = "ChinaPUNAppId"; // TODO: replace with your own AppId
PhotonNetwork.PhotonServerSettings.AppSettings.AppIdVoice = "ChinaVoiceAppId"; // TODO: replace with your own AppId
PhotonNetwork.PhotonServerSettings.AppSettings.AppVersion = "ChinaAppVersion"; // optional
PhotonNetwork.PhotonServerSettings.AppSettings.Server = "ns.photonengine.cn";
PhotonNetwork.ConnectUsingSettings();
}
TCP和UDP端口号
根据API的不同,连接到Photon Cloud可能需要为应用程序的协议和用途传入正确的端口。在大多数情况下,您不必担心端口号。下表包含每个协议和每个服务器连接要与光子云一起使用的默认端口。按协议和用途列出的默认端口:
Port Number | Protocol | Purpose |
---|---|---|
5058 or 27000 | UDP | Client to Nameserver (UDP) |
IPv6
向IPv6过渡是不可避免的。如果IPv6网络无法正常工作,苹果将不再接受向App Store提交的内容(推荐阅读)。因此,一些开发商可能会担心。别担心,Photon 帮你解决了。我们知道完全切换到IPv6需要时间。这就是为什么Photon Cloud可以从IPv4和IPv6客户端访问。要将IPv6与Photon Cloud一起使用,请使用此列表中正确的客户端SDK版本。如果您正在托管自己的光子服务器,请访问此页面以获取更多说明。
支持的SDK
目前,以下光子SDK支持IPv6:
- Photon ServerSDK v4:从4.0.28.x版开始。
- Photon ServerSDK v3:从版本3.4.31.10808开始。
- Photon Native(C++ + Objtovi-C)客户端SDKS:从版本4.1。x.x开始。
- Photon.Net/Mono(C#)客户端SDK:从版本4.1.x.x开始。
- PUN:从1.73版开始。
- Unity在4.7.2、5.1.5、5.2.5、5.3.4p4、5.4.0p1及更新版本中支持IPv6(Unity博客文章)。
5.4版本已经不在支持IPv6
使用DNS64/NAT64测试IPv6
我们建议在本地环境中使用苹果公司提出的方法进行测试。您可以使用Mac轻松设置IPv6 WiFi。
【完】