PartyNetwork::CreateEndpoint

对创建本地终结点的异步尝试进行排队。

语法

PartyError CreateEndpoint(  
    const PartyLocalUser* localUser,  
    uint32_t propertyCount,  
    const PartyString* keys,  
    const PartyDataBuffer* values,  
    void* asyncIdentifier,  
    PartyLocalEndpoint** localEndpoint  
)  

参数

localUserPartyLocalUser*
可选

要作为此终结点的所有者关联的可选本地用户。 当此终结点在远程设备上可见时,用户的标识符将绑定到此终结点。 如果用户由于通过 RemoveLocalUser() 被自愿移除或通过 PartyNetwork::KickUser() 被踢出而变得未经身份验证,则终结点将被销毁。

propertyCount uint32_t

输入 keysvalues 数组中的属性数。

keysPartyString*
大小为 propertyCount 的可选输入数组

属性包键的 propertyCount 条目数组。 此数组中的第 n 个键映射到 values 数组中的第 n 个值。 如果 propertyCount 为 0,此参数必须为 nullptr。

valuesPartyDataBuffer*
大小为 propertyCount 的可选输入数组

属性包值的 propertyCount 条目数组。 此数组中的第 n 个值由 keys 数组中的第 n 个键映射。 如果 propertyCount 为 0,此参数必须为 nullptr。

asyncIdentifier void*
可选

一个可选应用定义的指针大小的上下文值,可用于将完成状态更改与此调用关联起来。

localEndpointPartyLocalEndpoint**
可选、库分配的输出

可选的输出本地终结点对象,用于对终结点操作进行排队。

返回值

PartyError

如果创建终结点的异步操作已开始,则为 c_partyErrorSuccess,否则为错误代码。 如果此方法失败,则不会生成任何相关的状态更改。 可通过 PartyManager::GetErrorMessage() 检索错误代码的可读形式。

备注

此方法将异步尝试进行排队,以创建与此网络上的本地设备关联的终结点。 操作完成后将提供 PartyCreateEndpointCompletedStateChange,指示成功或失败。 成功后,将生成 PartyEndpointCreatedStateChange,并且将完全创建终结点,终结点将连接到网络并且对网络中所有经过身份验证的设备可见。 失败时,将生成 PartyEndpointDestroyedStateChange

此方法可选择提供 localEndpoint 作为可立即用于执行异步终结点操作的输出,例如 PartyLocalEndpoint::SendMessage() 和 PartyLocalEndpoint::SetSharedProperties()。 这些异步操作将在内部排队,直到终结点创建完成,此时将处理这些操作。 PartyEndpoint::GetUniqueIdentifier() 将返回失败,直到终结点创建完成。 生成的 PartyCreateEndpointCompletedStateChange 中也将提供此 localEndpoint

可选择将本地用户作为终结点的所有者提供。 如果提供了本地负责人用户,则必须在网络中或在网络中进行身份验证过程中对其进行身份验证。 如果其身份验证失败,则终结点创建也将失败。 如果在此终结点存在的情况下从网络中删除本地负责人用户,则该终结点将被自动销毁。 这将通过 PartyEndpointDestroyedStateChange 发出信号。

如果本地设备进入没有经过身份验证的用户且没有正在进行的身份验证操作的状态,则将自动销毁所有终结点(包括尚未完全创建的终结点)。 这将通过 PartyEndpointDestroyedStateChanges 发出信号。

成功返回后,此方法会使之前由 GetEndpoints() 返回的任何数组的内存无效,因为它会同步将新终结点添加到数组中。 PartyManager::StartProcessingStateChanges() 也会使数组的内存无效。 返回的 localEndpoint 对象将一直有效,直到生成 PartyEndpointDestroyedStateChange 并且引用该对象的所有状态更改都已返回到 PartyManager::FinishProcessingStateChanges()

属性包是与终结点关联的特定于游戏的值集合。 一旦终结点可见,就可以查询初始属性包。

如果在网络配置可用后,客户端通过调用此方法违反了 PartyNetworkConfiguration::maxEndpointsPerDeviceCount 限制,则此操作将同步失败。 如果在网络配置可用前,客户端将违反的终结点创建数量排队,则客户端将被从网络中踢出,并且当网络配置可用时将生成 PartyNetworkDestroyedStateChange

要求

标题: Party.h

另请参阅

PartyNetwork
PartyCreateEndpointCompletedStateChange
PartyEndpointCreatedStateChange
PartyEndpointDestroyedStateChange
PartyNetworkDestroyedStateChange
PartyNetworkConfiguration
PartyNetwork::GetEndpoints
PartyLocalEndpoint::SendMessage
PartyEndpoint::GetUniqueIdentifier
PartyEndpoint::GetEntityId
PartyEndpoint::GetSharedProperty
PartyNetwork::AuthenticateLocalUser
PartyNetwork::RemoveLocalUser