> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Preguntas frecuentes y solución de problemas de multijugador

> Preguntas frecuentes y sugerencias de solución de problemas para el modo multijugador de XBOX, que abarcan MPSD, MPA, suscripciones a sesiones, desconexiones, SCID y sandboxes.

### ¿Puedo mezclar los servicios Multiplayer Activity (MPA) y Multiplayer Session Directory (MPSD) en mi título?

No, no es posible mezclar llamadas de MPA y MPSD en un título. Los títulos deben elegir qué servicio usar en función de los requisitos funcionales.

### ¿Cómo puedo acceder a la API de Multiplayer Session Directory (MPSD) desde un servicio?

Para obtener más información, consulte [Administración de sesiones multijugador de servicio a servicio](/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/s2s-call-patterns/live-mpsd-service-to-service).

### ¿Puede mi título suscribirse a los cambios de más de una sesión?

Sí, un título puede suscribirse para recibir cambios en un máximo de 10 sesiones por conexión.

### ¿Se quitará inmediatamente a un jugador si se pierde la conexión de red o si el jugador apaga la consola?

La conexión de web socket permite a Multiplayer Session Directory (MPSD) detectar rápidamente la desconexión del cliente y establecer el cliente como Inactive. Los miembros de la sesión se quitan en cuanto expira el tiempo de espera para la eliminación por inactividad. Para obtener más información, consulte la sección [Tiempos de espera de sesión](/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-timeouts) en el tema "Temas avanzados de sesiones multijugador".

### ¿Cómo determino qué identificador de configuración de servicio (SCID), plantilla de sesión y sandbox usar?

Si no participó en el registro inicial de su título, que es cuando se creó esta información, no tiene acceso directo a ella. Póngase en contacto con su administrador de cuentas de desarrollador (DAM), que puede obtener estos datos por usted.

### ¿Tienen un ejemplo de cuerpo de solicitud que pueda comparar con el de mi título?

Consulte la estructura de la solicitud en [MultiplayerSessionRequest (JSON)](/reference/live/rest/json/json-multiplayersessionrequest).

### ¿Qué debo hacer si obtengo un código de estado HTTP 403 al llamar a MPSD?

Esto suele ser un problema de permisos o de ámbito. Recopile seguimientos de Fiddler para obtener más información y, a continuación, compruebe los mensajes devueltos como parte del cuerpo de `HttpResponse` para ver los mensajes 403 comunes.

* "The requested service configuration cannot be accessed."
  * Confirme que está usando una cuenta que tiene acceso al sandbox.
  * Confirme que está en el sandbox correcto.
  * Si está usando autenticación con certificado y obtiene este error, póngase en contacto con su DAM.
* "The requested session cannot be accessed. The calling user must have multiplayer privilege, and private sessions can only be read by session members."
  * No tiene la posibilidad de ver la sesión, posiblemente porque está intentando acceder a una sesión que tiene una visibilidad de Private. Si la visibilidad está establecida en Private, solo los miembros de esa sesión pueden leer el documento de sesión.
  > \[!NOTE]
  > Un jugador debe tener una cuenta XBOX Live Gold para registrar una nueva sesión. Sin los privilegios de la cuenta Gold, las solicitudes para registrar una nueva sesión devuelven HTTP 403.
* "The request body can't contain existing member references unless the authentication principal includes a server."
  * No puede unir a otro jugador a una sesión en nombre de ese jugador. Solo puede invitar. Para invitar a un jugador, establezca el índice en `reserve_<number>`.

### ¿Qué debo hacer si obtengo un código de estado HTTP 404 al llamar a MPSD?

Recopile seguimientos de Fiddler para obtener más información y, a continuación, siga estos pasos.

1. Compruebe el mensaje devuelto como parte del cuerpo de `HttpResponse` para ver los mensajes 404 comunes, como los siguientes.
   * "The requested service config is either invalid or not configured for sessions." Asegúrese de que está usando el SCID correcto.
   * "The requested session wasn't found." Asegúrese de que la sesión se haya creado y de que la plantilla de sesión sea correcta antes de recuperarla. Puede crear una sesión con una llamada `PUT`.
2. Compruebe el URI que está usando.
3. Reinicie la consola o inicie sesión como un jugador diferente.
4. Busque el código de error u otras soluciones en los foros de desarrolladores de juegos.
5. Confirme que la sesión no se eliminó por estar vacía. Las sesiones pueden quedar vacías porque los jugadores agotan el tiempo de espera. Cuando esto sucede, con frecuencia es porque todos los miembros de la sesión están en un estado al que se aplica un tiempo de espera, como Ready o Inactive. Para obtener más información, consulte la sección [Estados de usuario de sesión](/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-user-states) en el tema "Temas avanzados de sesiones multijugador".

### ¿Por qué obtengo un código de estado HTTP 404 al llamar a [XblMultiplayerWriteSessionByHandleAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayerwritesessionbyhandleasync) o [XblMultiplayerGetSessionByHandleAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayergetsessionbyhandleasync)?

Si su título usa un identificador (handle) para acceder a una sesión de MPSD en respuesta a una activación de protocolo de unión que contiene un identificador de handle, el identificador de handle de la activación de protocolo podría estar obsoleto por uno de los motivos siguientes.

* La vista de la interfaz de usuario del shell de XBOX desde la que el título inició la unión podría estar desactualizada. Algunas vistas de la interfaz de usuario, como la tarjeta de perfil del jugador, no actualizan automáticamente los identificadores de unión mientras están abiertas. Para evitar recibir el código de estado HTTP 404, el título debe cerrar y volver a abrir la vista para actualizar los datos antes de la unión.
* El jugador al que se está uniendo el título podría haber cambiado de sesión de actividad después de que el título seleccionara la operación de unión desde la interfaz de usuario del shell de XBOX. Este motivo es poco frecuente.

En cualquiera de estos casos, el código de su título debe mostrar al jugador que se une un mensaje de error que indique que la unión ha fallado.

### ¿Por qué obtengo un código de estado HTTP 412 al llamar a MPSD?

La solicitud siguiente devuelve HTTP 412 si la sesión ya existe.

```uri theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/foo HTTP/1.1
Content-Type: application/json
If-None-Match: *
```

La solicitud siguiente devuelve HTTP 412 si la ETag de la sesión no coincide con el encabezado `If-Match`.

```uri theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/foo HTTP/1.1
Content-Type: application/json
If-Match: 9555A7DE-8B91-40E4-8CFB-0629312C9C7D
```

Para obtener más información, consulte la sección [Sincronización de las actualizaciones de sesión](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#synchronization-of-session-updates) en el tema "Información general de Multiplayer Session Directory".

### ¿Por qué obtengo un código de estado HTTP 400, 405, 409, 503 o similar al llamar a MPSD?

Recopile seguimientos de Fiddler para obtener más información y, a continuación, compruebe los mensajes devueltos como parte del cuerpo de `HttpResponse`. Con esta información, debería poder identificar y corregir el error. Si no es así, busque soluciones en los foros de desarrolladores.

También puede obtener el cuerpo de la respuesta si usa la API de servicios de XBOX (XSAPI), como se describe en [Solución de problemas de la API de servicios de XBOX](/services/xbox-services/develop/troubleshooting/live-troubleshooting-apis). Como alternativa, su código puede usar [HCTraceSetClientCallback](/reference/live/httpclient/trace/functions/hctracesetclientcallback) para enviar la salida a la interfaz de usuario del título.

### ¿Qué puedo o debo cambiar en las plantillas de sesión de mi título?

Las plantillas de sesión son patrones para sus sesiones y no puede invalidar las constantes que ya están establecidas en las plantillas. Sin embargo, puede agregar nuevas propiedades a las plantillas. Para obtener más información, consulte [Plantillas de sesión multijugador](/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates) e [Información general de Multiplayer Session Directory](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview).

### ¿Por qué obtengo un error que dice que mi sesión no está inicializada?

El siguiente es un ejemplo del mensaje de error que podría recibir.

`400 - \[ResponseBody\]: This session is configured for managed initialization requiring at least 2 members to start.`

La sesión no se puede crear porque la solicitud no incluye suficientes reservas de miembros de sesión con el campo `initialize` establecido en `true`. Su código puede establecer este campo para un miembro mediante el parámetro `initializeRequested` de [XblMultiplayerSessionAddMemberReservation](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionaddmemberreservation) o [XblMultiplayerSessionJoin](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionjoin).

Cuando la inicialización esté especificada en su plantilla de sesión, asegúrese de que `"initialize": true` esté establecido en suficientes reservas de miembros para cumplir los requisitos de calidad de servicio (QoS) del emparejamiento. Para obtener más información, consulte [Inicialización de la sesión de destino y QoS](/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-target-session).

### ¿Por qué no se crea mi sesión cuando obtengo un código de estado HTTP 204?

Este código de estado indica que no se agregó ningún jugador a la sesión cuando la creó. Si no hay jugadores en la sesión cuando se crea y el tiempo de espera de sesión vacía es cero (valor predeterminado), la sesión no se crea.

Asegúrese de incluir al menos un jugador al crear una sesión. Para escenarios de servidor dedicado, obtenga un jugador que esté intentando crear una partida o que necesite crearla y convierta a ese jugador en el jugador inicial de la partida. Como alternativa, puede cambiar o quitar el tiempo de espera de sesión vacía. Para obtener más información, consulte la sección [Tiempos de espera de sesión](/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-timeouts) en el tema "Temas avanzados de sesiones multijugador".

### ¿Cuándo debo sondear MPSD?

Sus títulos deben evitar sondear MPSD. Si un título debe detectar cambios en las sesiones de MPSD, debe suscribirse a los eventos de cambio de sesión. Para obtener más información, consulte la sección [Suscripción a las notificaciones de cambio de sesión de MPSD](/services/xbox-services/multiplayer/mpsd/how-to/live-mpsd-how-tos#sfmscn) en el tema "Tareas multijugador".

### ¿Puedo usar XblMultiplayerQuerySessionsAsync para implementar la exploración de sesiones o el emparejamiento?

El método [XblMultiplayerQuerySessionsAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayerquerysessionsasync) está pensado para llamadas poco frecuentes con el fin de ayudar en la depuración. Debido a las limitaciones del servicio, los resultados de sesión de esta API no son en tiempo real y podrían estar incompletos cuando se llama con más frecuencia.

Para implementar la funcionalidad de exploración de sesiones, consulte la sección "Search handles" en [Exploración de sesiones multijugador](/services/xbox-services/multiplayer/concepts/live-session-browse). Para implementar el emparejamiento, consulte [Uso del emparejamiento de SmartMatch](/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-how-tos).

### ¿Qué sucede si un jugador que fue reservado o invitado a una sesión no se une a ella?

Depende de si el título se está ejecutando cuando se notifica al jugador que la sesión de juego está lista.

Si el jugador está en el título y no acepta la notificación de sesión de juego desde la interfaz de usuario del título, el título tiene la responsabilidad de quitar al jugador de la sesión de juego mediante el método [XblMultiplayerSessionLeave](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionleave).

Si el título está restringido o no se está ejecutando, el shell proporciona una notificación que informa al jugador de que hay una plaza disponible. Si el jugador rechaza o ignora la notificación del sistema, MPSD quita a ese jugador de la sesión de juego.

### ¿Por qué el emparejamiento no encontraría una sesión creada?

En XBOX One, simplemente crear una sesión no es suficiente para que el emparejamiento encuentre la nueva sesión. Debe crear un vale de emparejamiento para empezar a anunciar la sesión al servicio de emparejamiento. Para obtener más información, consulte [Información general del emparejamiento](/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview).

### Si una sesión de juego tiene plazas de jugador abiertas y admite la unión en curso, ¿por qué los jugadores no podrían encontrar la sesión después de que haya comenzado?

Cuando comienza una sesión de juego, deja de anunciarse en el servicio de emparejamiento. Si quedan plazas de jugador disponibles dentro de la sesión y el árbitro (anfitrión) quiere atraer nuevos jugadores, el árbitro debe crear un nuevo vale de emparejamiento para la sesión en curso llamando al método [XblMatchmakingCreateMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingcreatematchticketasync). El vale anuncia la sesión de nuevo y encuentra más jugadores. Para obtener más información, consulte [Información general del emparejamiento](/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview).

### Si una sesión de juego está abierta, ¿puede un jugador que acaba de unirse a un juego simplemente unirse a la sesión y empezar a jugar sin esperar a la reserva?

Sí. Esto es especialmente útil cuando su título usa varias sesiones para hacer un seguimiento de subgrupos de jugadores dentro de una sesión de juego. El jugador que se une podría unirse a la sesión que representa al grupo del jugador y, a continuación, necesitar unirse a la sesión de juego más grande.

### Cuando se juegan sesiones de juego grandes en mi título, ¿por qué no todos los miembros de la sesión ven la notificación de invitación al juego?

Cuando su título agrega un jugador a la sesión mediante la unión, el título siempre establece el miembro `InitializeRequested` de [XblMultiplayerSessionMember](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionmember) en `true`. Esto indica a MPSD que espere al resto de los miembros de la sesión antes de sacar el juego de la fase de inicialización. De lo contrario, los jugadores tienen muy poco tiempo para unirse y pueden perderse las notificaciones de cambios de sesión.


## Related topics

- [Conceptos del Directorio de sesiones multijugador (MPSD)](/es/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [Conceptos](/es/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [Preguntas frecuentes y guía de solución de problemas de las XBOX PC Remote Tools](/es/tools/tools-pc/xbox-pc-remote-tools/faq.md)
- [Preguntas frecuentes para desarrolladores de PC](/es/build/gdk-and-engines/guides/pc-faq.md)
- [Solución de problemas del chat de voz](/es/services/playfab/community/voice-communications/concepts-audio-troubleshooting.md)
