PartyManager::SerializeNetworkDescriptor

将网络描述符结构序列化为不透明字符串,该字符串可安全地通过游戏和特定于平台的通信通道进行通信。

语法

PartyError SerializeNetworkDescriptor(  
    const PartyNetworkDescriptor* networkDescriptor,  
    char* serializedNetworkDescriptorString  
)  

参数

networkDescriptorPartyNetworkDescriptor*

要序列化的网络描述符。

serializedNetworkDescriptorString char*
大小为 c_maxSerializedNetworkDescriptorStringLength+1 的输出字符串缓冲区

序列化网络描述符字符串写入到的输出缓冲区。 序列化的网络描述符字符串永远不会包含非 ASCII、控件或其他需要 JSON 或 XML 转义的字符。

返回值

PartyError

如果描述符可序列化且已成功序列化,则为 c_partyErrorSuccess;否则为错误代码。

备注

网络描述符包含设备连接到描述符关联到的网络所需的所有信息。 serializedNetworkDescriptorString 是由 networkDescriptor 指定的描述符的序列化形式,可安全地通过游戏和特定于平台的通信通道进行通信。 字符串的长度可能最多 c_maxSerializedNetworkDescriptorStringLength 个字符,不包括 null 终止符,并且永远不会包含非 ASCII、控件或其他需要 JSON 或 XML 转义的字符。

如果网络描述符不可序列化,则此方法将失败。 例如,调用 CreateNewNetwork() 以同步方式提供的描述符不可序列化,因为它未包含足够的信息供远程客户端连接到新网络。 提供 PartyCreateNewNetworkCompletedStateChange 并指示成功时,网络描述符将更改并变为可序列化。 更新后的网络描述符作为 PartyCreateNewNetworkCompletedStateChange 中的字段提供。 连接到网络后,可以使用 PartyNetwork::GetNetworkDescriptor()检索描述符。

PartyNetworkDescriptors 与 PartyInvitations 协同工作,以方便邀请远程用户加入网络。 首先,通过 PartyNetwork::GetNetworkDescriptor() 获取网络描述符,并通过 SerializeNetworkDescriptor() 对其进行序列化。 接下来,通过 PartyNetwork::CreateInvitation() 创建邀请 或通过 PartyNetwork::GetInvitations() 查询预先存在的邀请,并通过 PartyInvitation::GetInvitationConfiguration()从其配置中获取邀请的标识符。 最后,在特定于平台的邀请机制的有效负载中同时包含序列化网络描述符和邀请标识符。 当远程用户收到邀请时,他们通过 DeserializeNetworkDescriptor() 从平台邀请有效负载反序列化网络描述符,并将反序列化的描述符传递给 ConnectToNetwork()。 连接后,远程用户通过 PartyNetwork::AuthenticateLocalUser() 通过平台邀请有效负载中的邀请标识符 身份验证进入网络。

可以在 Initialize() 方法之前调用此方法。

要求

标题: Party.h

另请参阅

PartyManager
PartyManager::DeserializeNetworkDescriptor
PartyNetwork::GetNetworkDescriptor
PartyManager::ConnectToNetwork
PartyInvitation
PartyNetwork::CreateInvitation
PartyNetwork::GetInvitations
PartyInvitation::GetInvitationConfiguration
PartyNetwork::AuthenticateLocalUser