> ## 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.

# Programación del servicio RTA

> Ejemplos de código C plano que muestran cómo registrar y cancelar el registro de controladores de XSAPI con el servicio de actividad en tiempo real (RTA) de XBOX para recibir cambios en las estadísticas de jugador.

En este tema se muestra cómo llamar al servicio de actividad en tiempo real (RTA) mediante los siguientes ejemplos de código C plano.

* [Registro de un controlador para obtener eventos de cambio de estadísticas del servicio RTA](#registering-a-handler-to-get-statistic-changes-events-from-the-Real-Time-Activity-service)
* [Cancelación del registro en el servicio RTA](#unregistering-from-the-Real-Time-Activity-service)

<a id="registering-a-handler-to-get-statistic-changes-events-from-the-Real-Time-Activity-service" />

## Registro de un controlador para obtener eventos de cambio de estadísticas del servicio RTA

Las estadísticas se definen y se configuran para RTA en [Partner Center](https://partner.microsoft.com/dashboard). Para obtener más información, consulte lo siguiente:

* [Configuración de estadísticas destacadas y tablas de clasificación administradas por el título en Partner Center](/services/xbox-services/player-data/stats-leaderboards/title-managed/config/live-tm-leaderboards-portal)

* [Registro para recibir notificaciones de cambios en las estadísticas de jugador](/services/xbox-services/fundamentals/rta/concepts/live-register-for-stat-notifications)

<Note>Si es un desarrollador de estadísticas basadas en eventos, póngase en contacto con su administrador de cuentas de desarrollador (DAM) para obtener información sobre la configuración en el portal de las estadísticas basadas en eventos en [Partner Center](https://partner.microsoft.com/dashboard). Para obtener más información, consulte [Configure XBOX Live stats and stat rules in Partner Center)](https://developer.microsoft.com/en-us/games/xbox/partner/windows-configure-stats).</Note>

Dentro del título, debe configurar las estadísticas cuyo seguimiento quiere que realice RTA. Los controladores del título se invocan cada vez que cambia una de las estadísticas configuradas, como se muestra en el ejemplo de código siguiente.

#### C plano

```cpp theme={null}
// Add a statistic changed handler.
void* context{ nullptr };
XblFunctionContext statisticChangedFunctionContext = XblUserStatisticsAddStatisticChangedHandler(
    xboxLiveContext,
    [](XblStatisticChangeEventArgs eventArgs, void* context)
    {
        // Handle statistic change. 
        LogToScreen("Statistic changed callback: stat changed (%s = %s)",
            eventArgs.latestStatistic.statisticName,
            eventArgs.latestStatistic.value);
    },
    context
    );

// Configure the statistics that you want RTA to track. Titles only receive real-time updates for tracked statistics.
// Note that you can update the set of tracked statistics independently from the handlers.
std::vector<const char*> statisticNames{ "TotalPuzzlesSolved" };
HRESULT hr = XblUserStatisticsTrackStatistics(
    xblContextHandle,
    &xboxUserId,
    1,
    scid,
    statisticNames.data(),
    statisticNames.size()
);
```

<a id="unregistering-from-the-Real-Time-Activity-service" />

## Cancelación del registro en el servicio RTA

Cuando ya no se necesiten actualizaciones para una estadística determinada (o un conjunto de estadísticas), el título simplemente debe dejar de realizar el seguimiento de esa estadística.
Si ya no se necesitan actualizaciones de estadísticas en absoluto, al quitar todos los controladores registrados se quitan automáticamente las suscripciones de RTA relacionadas, como se muestra en el ejemplo de código siguiente.

#### C plano

```cpp theme={null}
// Stop receiving updates for a particular statistic.   
std::vector<const char*> statisticNames{ "TotalPuzzlesSolved" }; 
HRESULT hr = XblUserStatisticsStopTrackingStatistics(
    xblContextHandle,
    &xboxUserId,
    1,
    scid,
    statisticNames.data(),
    statisticNames.size()
);

// Alternatively, stop receiving updates for statistics changes altogether.
XblUserStatisticsRemoveStatisticChangedHandler(
    xblContextHandle,
    statisticChangedFunctionContext
);
```

<Info>Si un cliente usa RTA para sesiones multijugador y se desconecta durante treinta segundos, el Multiplayer Session Directory (MPSD) detecta que la sesión de RTA está cerrada y quita al jugador de la sesión. A continuación, XSAPI restablece automáticamente la conexión de RTA. Sin embargo, es responsabilidad del título reescribir sus sesiones de MPSD una vez restablecida la suscripción a RTA.</Info>

## Consulte también

[XblStatisticChangeEventArgs](/reference/live/xsapi-c/user_statistics_c/structs/xblstatisticchangeeventargs)

[XblUserStatisticsAddStatisticChangedHandler](/reference/live/xsapi-c/user_statistics_c/functions/xbluserstatisticsaddstatisticchangedhandler)

[XblUserStatisticsRemoveStatisticChangedHandler](/reference/live/xsapi-c/user_statistics_c/functions/xbluserstatisticsremovestatisticchangedhandler)


## Related topics

- [Código de ejemplo del servicio de actividad en tiempo real (RTA)](/es/services/xbox-services/fundamentals/rta/how-to/live-rta-howto-nav.md)
- [Procedimientos](/es/services/xbox-services/fundamentals/rta/how-to/index.md)
- [Configuración en el portal de notificaciones de cambio de estadísticas](/es/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-stat-change-notif-portal.md)
- [Conceptos del servicio de actividad en tiempo real (RTA)](/es/services/xbox-services/fundamentals/rta/concepts/live-rta-concepts-nav.md)
- [Procedimientos recomendados para llamar a los servicios XBOX](/es/services/xbox-services/develop/best-practices/live-best-practices-calling-xbl.md)
