Información general del diseño
Para integrar MPA con PlayFab Lobby y Match o servicios similares, un título o un servicio del título tiene que consultar la información relevante del estado de la sala y, después, migrar esta información al servicio MPA. El servicio MPA no está pensado para la información de estado de la sala ni de la sesión.Actividad
Para MPA Activity, la información de origen debe ser la información de la sala subyacente. Un título o servicio necesita establecer la información relevante en los campos de contenido de la actividad de MPA siguiendo estos procedimientos recomendados:-
Frecuencia de actualización
La migración de estado desde los datos de la sala debe realizarse a un ritmo razonable para reflejar los cambios, como las actualizaciones de la información de
CurrentPlayers. Las llamadas de actualización no deben superar los límites de llamadas descritos en Limitación de velocidad específica. Tampoco se debe eliminar o volver a crear una actividad de MPA para actualizar información. -
Identidad de usuario de XBOX (XUID)
El XUID de un jugador suele ser información no validada en servicios ajenos a los servicios de XBOX y no es el identificador principal para los servicios entre redes. PlayFab Lobby usa un identificador de entidad de usuario de PlayFab entre redes para los jugadores, que se puede convertir en un XUID para el usuario activo mediante llamadas de API o de servicio. Para obtener más detalles, consulte el tutorial de PlayFab Tutorial: Obtención del perfil de un jugador. Solo este XUID resuelto debe considerarse seguro.
El XUID de los demás jugadores no se puede recuperar de esta manera. Como solución, los XUID se pueden proporcionar como propiedades de cadena personalizadas de un jugador en la sala. Estas cadenas no deben considerarse seguras y siempre deben validarse a través del servicio de PlayFab mediante
PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResultpara comparar el identificador de entidad de usuario de PlayFab esperado y el real para un XUID. Una discrepancia indica un XUID incorrecto. Para todos los servicios, los XUID proporcionados como cadenas no seguras no son seguros y pueden dar lugar a ataques de suplantación de identidad sin validación. -
Cadena de conexión
Para la integración con el servicio PlayFab Lobby, la cadena de conexión de una actividad de MPA debe establecerse en la cadena de conexión de la sala, que se puede recuperar mediante
PFLobbyGetConnectionString. Otros servicios deben usar una cadena de unión equivalente. -
Reflejo de la capacidad de unión de la sala
Una actividad está pensada para permitir que los jugadores se unan a experiencias de juego y debe coincidir con la capacidad de unión del estado de la sala subyacente. Una actividad se vuelve automáticamente no unible cuando está llena (
CurrentPlayersalcanza el valor deMaxPlayers). Los títulos que quieran hacer que una actividad sea temporalmente no unible también pueden usar este comportamiento. Una actividad solo debe eliminarse cuando no sean posibles uniones futuras. Tenga en cuenta que modificar la configuración de privacidad de la actividad solo restringe las uniones, pero no puede bloquearlas todas. Debido a la latencia de las uniones a actividades, los títulos siempre deben tener en cuenta los flujos en los que las uniones se realizan contra sesiones llenas o no unibles, y proporcionar los errores adecuados al jugador. - Reflejo de los cambios de privacidad El estado y los cambios de la privacidad de la actividad a través de las restricciones de unión deben reflejar la directiva de acceso definida para la sala de PlayFab subyacente. Lo mismo se aplica a servicios similares y puede requerir la asignación de valores de privacidad.
Invitaciones
Para MPA Invites, el origen recomendado también debe ser la información de la sala subyacente. Este enfoque de procedimiento recomendado es más confiable que una invitación a una malla de red como PlayFab Party y puede proporcionar información de estado a través de los datos de la sala de inmediato. Para la integración con el servicio PlayFab Lobby, la cadena de conexión de una invitación de MPA debe establecerse en la cadena de conexión de la sala. Esta cadena se puede recuperar mediantePFLobbyGetConnectionString. Además, se debe establecer el valor de unión multiplataforma adecuado para la invitación.
