光子云地区

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();
}

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

Photon Cloud是一个完全托管的软件即服务(SaaS)解决方案。 您可以完全专注于您的应用程序客户端,而机房托管,服务器操作和调整都由光子公司负责。

Photon Server是一个您自己运行和维护的本地服务器应用程序,您可以在您选择的机器(包括各类云服务器和虚拟机)上运行和托管。 所以其是您完全可定制的,且完整的用户认证机制能让你的自由配置和设置你自己的多人游戏服务器端。

Photon Cloud是在运行在Photon Server上的。

光子服务器光子云构架
光子服务器光子云构架

 

光子云(Photon Cloud)运行在光子服务器(Photon Server)上。
Photon Realtime,Photon Chat都是在光子云(Photon Cloud)中运行的应用程序。
Photon Unity Networking(又名PUN)是Unity 3D客户端插件,与Unity Networking兼容的API,连接Photon Realtime。

光子云 光子服务器
服务器管理 再没有管理服务器的杂乱,您只需专注于游戏性和创意,而我们的专家负责顺畅运行服务器的问题。 您可以获得为应用程序运行Photon的全部权限。在自己的服务器或租用的服务器或云上运行,需确保它们是状态良好的。

Photon的日志和性能计数器提供关于性能和稳定性的所有必要信息。

可扩展性 Photon Cloud会自动扩展以适应您的用户。
使用我们的SDK,您的客户端应用程序将获得高效的负载平衡工作流。
启用我们在源码中的负载平衡,它是您中大型应用跨多个服务器扩展的坚实基础。
需要留意的是为您正扩展的客户数量而添加正确数量的服务器。
游戏逻辑 通过Photon Realtime , Photon Chat和PUN,您将获得目前所有多人游戏类型的解决方案。 每个可供免费下载的客户端SDK包含多个源代码示例,让您开始真正快速地将Photons API用于同步和异步游戏,及应用程序中。 服务器的逻辑可以在C#中完全自定义。 免费的服务器SDK中提供了多个演示应用程序的源代码,并为您的应用程序提供了高性能的现成框架。 受益于我们的协议和抽象的低级功能,您不会错过任何重要功能。
立即开始 Photon Cloud让您注册并立即运行您的应用程序。无需设置。无需使用自己的服务器。 下载后, 在5分钟内启动您的Photon服务器Photon非常容易设置,并在本地和远程部署都运行良好。
许可 选择各种订阅方案,匹配您的每月活跃用户数量。
无论您是独立,创业或AAA工作室,您都会找到一个匹配的计划。 Photon Realtime拥有最多20 CCU的免费计划。
许可作为一次性购买或订阅提供,并作为下载提供。
使用企业许可证可托管任意数量的服务器和应用程序。 Photon Server可以免费获得最多100个CCU的许可证。

 

光子服务器PhotonServer v5

Photon Cloud 光子云 Photon Server 光子服务器
特征
虚拟应用 O X
Name Server O O
支持的光子产品
Realtime O O
PUN O O
Chat O X
Voice O O
Bolt O X
验证方式
自定义 O O
Facebook O O
Oculus O X
Steam O O
Xbox O X
PlayStation O X
Nintendo O X

 

光子服务器PhotonServer v4

Photon Cloud 光子云 Photon Server 光子服务器
特征
虚拟应用 O X
Name Server O X
支持的光子产品
Realtime O O
PUN O O
Chat O X
Voice O O
Bolt O X
验证方式
自定义 O O
Facebook O X
Oculus O X
Steam O X
Xbox O X
PlayStation O X
Nintendo O X

自V4.0.29.11263起的重要更改

Photon Cloud会不断更新,包括修补程序,增强功能或新功能。尽管我们尝试发布Photon Server SDK的新版本以赶上Photon Cloud,但两者无法始终保持同步。

在这里,我们列出了自Photon Server SDK的最新公共版本v4.0.29.11263以来Photon Cloud中的重要更改。此外,如果您同时定位在Photon Cloud和Photon Server环境同时开发,或者准备从一个环境切换到另一个环境,此列表将列出一些功能之不同,其在另外的环境中无法正常运行。同时,您可能还会找到响应的解决方法或建议。

V4.0.29.11263中缺少的光子云功能

  • 创建房间后,便无法更改PlayerTTL和EmptyRoomTTL。它们后来被添加为众所周知的房间属性。
  • “Delete Null Properties”选项不可用. (RoomOptions.DeleteNullProperties).具有空值的属性将不会被服务器删除。
  • “Broadcast Properties Change”选项不可用(RoomOptions.BroadcastPropsChangeToAll)。除非使用CAS,否则调用SetProperties的客户端将不会收到PropertiesChange事件。CAS是可以在Photon Cloud和Photon Server之间具有一致的行为一种解决方案。
  • SQL Lobby中的GetGameList操作(也称为“ GetCustomRoomList”或“ GetRoomList”,不要与GetGameList WebRPCPUN Classic的GetRoomList混淆)不可用。

V4.0.29.11263中的已知问题

  • 如果客户端或身份验证未设置,则服务器不会返回UserId。该值将是在服务器上生成的GUID。这可能导致玩家无法加入房间,并产生错误代码-2(错误消息:”Join failed: UserId is not set, checkUserIdOnJoin=true expects a UserId.”)。作为解决方法,如果用户未明确设置,客户端C#SDK现在会将GUID发送为UserId。
  • 另外,在身份验证期间,如果身份验证提供方未设置昵称,则服务器将返回空昵称,该昵称将覆盖客户端上以前设置的任意值。作为解决方法,您可以在连接后设置一个昵称。此值将在房间内使用,且以后可以更改(包括同步)。
  • 服务器不支持序列化协议版本1.8。如果尝试从客户端SDK的相对较新版本(其默认为1.8)连接到自托管的Photon Server,则连接将失败。在C#SDK中,客户端将与断开连接DisconnectByServerReasonUnknown。一种解决方案是在连接之前将版本设置为1.6。设置loadBalancingClient.LoadBalancingPeer.SerializationProtocolTypeSerializationProtocol.GpBinaryV16。在PUN2中,它应该是PhotonNetwork.NetworkingClient.LoadBalancingPeer.SerializationProtocolType。除非您使用不同于PhotonNetwork.ConnectUsingSettings()的方法进行连接,否则在PUN2中不需要。
  • 服务器允许将同一actor添加到同一interest group多次,从而导致同一事件被actor多次发送到同一interest gruop。
  • 此服务器未完全支持快速重新加入功能(ReconnectAndRejoin),因为其未实现会话令牌。
error: 转摘请联络我们~