游戏服务器和大厅
本文介绍如何从游戏服务器使用 PlayFab Lobbies。
在 PlayFab 多人游戏 SDK 中启用游戏服务器 API
若要在 PlayFab 多人游戏中启用游戏服务器 API,必须在包含 PFLobby.h 之前定义PFMULTIPLAYER_INCLUDE_SERVER_APIS。
#define PFMULTIPLAYER_INCLUDE_SERVER_APIS
#include <PFMultiplayer.h>
#include <PFLobby.h>
创建服务器拥有的大厅
若要创建服务器拥有的大厅,请执行以下步骤:
- 使用 AuthenticateGameServerWithCustomId 以 game_server PlayFab 实体身份登录,并检索实体密钥和令牌对。
- 使用 PFMultiplayerSetEntityToken向 PlayFab 多人游戏 SDK 提供game_server的实体密钥和令牌。
- 使用game_server的实体键调用 PFMultiplayerCreateAndClaimServerLobby。
有关详细信息和示例代码,请参阅 创建大厅。
服务器不是成员
在客户端拥有的大厅中,大厅的所有者也是大厅的成员。
服务器拥有的大厅在此方面有所不同。 拥有大厅的game_server实体不是大厅的成员。
服务器所有者可以修改全局大厅属性,但没有自己的成员属性部分。
有关此区别的详细信息,请参阅 大厅所有者与成员。
所有权和所有权迁移策略
与客户端拥有的大厅不同,服务器拥有的大厅只有一个有效的所有权迁移策略:“服务器”所有权迁移策略。
这会对所有权迁移和大厅恢复产生重要影响。
主要是当服务器拥有的大厅的所有者断开连接(例如,由于服务器崩溃)时,大厅的所有权不会自动转移到大厅中的任何成员。 相反,大厅会隐藏在大厅搜索结果中(以避免新成员无意中加入此大厅),由游戏来协调一些恢复逻辑。
在下一个可用机会中,崩溃的game_server实体应通过 PFMultiplayerFindLobbies 使用 大厅/amOwner 搜索密钥来搜索需要恢复的大厅。
找到需要恢复的大厅后,游戏服务器可以尝试恢复游戏会话或删除大厅。
有关所有权更改的详细信息,请参阅 所有权更改。