联接大厅和连接字符串
玩家通过向大厅服务提供大厅的“连接字符串”(一个向大厅授予成员身份的不透明标识符)加入大厅。
玩家可以通过以下方式发现连接字符串和联接大厅。
- 通过使用游戏内邀请 - 大厅成员可以直接通过大厅服务邀请其他玩家加入该大厅。 这将与受邀玩家共享大厅的连接字符串。 这些邀请跨平台工作,但仅在游戏内工作。 有关详细信息,请参阅 大厅邀请
- 通过使用平台提供的邀请- 大厅的成员可以通过特定于平台的邀请机制直接与其他玩家共享大厅的连接字符串。 这些邀请不会跨平台工作,但如果没有已运行游戏的收件人,则可以接收这些邀请。
- 通过使用 FindLobbies 搜索可用的大厅并加入可用大厅
- 通过任何带外自定义发现机制共享大厅的连接字符串
注意:只有玩家(即title_player_account PlayFab 实体)才能将大厅作为成员加入。 游戏服务器(即game_server PlayFab 实体)无法以成员身份加入大厅。 有关游戏服务器如何与大厅交互的详细信息,请参阅 游戏服务器和 Lobbies。
连接字符串和大厅 ID
除了连接字符串之外,大厅还有另一个名为 LobbyId的标识符。 LobbyId 是大厅的唯一标识符。 游戏可以使用 LobbyId 来区分玩家所在的多个大厅,但 LobbyId 不能用于加入大厅或直接查询需要成员身份的任何信息。 因此,您的游戏不必为 LobbyId 保留机密。 另一方面,连接字符串授予对大厅的访问权限,因此应小心避免将它们公开给不需要的外部方。
使用大厅和匹配 SDK 加入大厅的示例
下面是一个简短的代码片段,演示如何将连接字符串传递给 SDK 提供的 PFMultiplayerJoinLobby API。
在此代码片段中,连接字符串可以由上述任何发现机制提供:游戏内邀请、特定于平台的邀请或筛选的大厅搜索。
// Initialize the member properties for the newly joining member
const char* playerColorPropertyKey = "PlayerColor";
const char* playerColorPropertyValue = MyGame::GetPlayerColorString(localUser);
PFLobbyJoinConfiguration joinConfig;
joinConfig.memberPropertyCount = 1;
joinConfig.memberPropertyKeys = &playerColorPropertyKey;
joinConfig.memberPropertyValues = &playerColorPropertyValue;
// Join the lobby using the connection string
HRESULT hr = PFMultiplayerJoinLobby(
g_pfmHandle,
&localUser,
connectionString,
&joinConfig,
nullptr,
nullptr);