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

# RTA サービスのプログラミング

> XBOX Real-Time Activity (RTA) サービスで XSAPI ハンドラーを登録および登録解除してプレイヤーの統計変更を受信する方法を示すフラット C コード サンプルです。

このトピックでは、次のフラット C のコード例を使用して Real-Time Activity (RTA) サービスを呼び出す方法を示します。

* [RTA サービスから統計変更イベントを取得するためのハンドラーの登録](#registering-a-handler-to-get-statistic-changes-events-from-the-Real-Time-Activity-service)
* [RTA サービスからの登録解除](#unregistering-from-the-Real-Time-Activity-service)

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

## RTA サービスから統計変更イベントを取得するためのハンドラーの登録

統計情報を定義し、RTA 用に構成するには、[Partner Center](https://partner.microsoft.com/dashboard) を使用します。詳細については、以下を参照してください。

* [Partner Center でのタイトル管理 Featured Stats およびリーダーボードの構成](/services/xbox-services/player-data/stats-leaderboards/title-managed/config/live-tm-leaderboards-portal)

* [プレイヤーの統計変更通知の登録](/services/xbox-services/fundamentals/rta/concepts/live-register-for-stat-notifications)

<Note>イベント ベースの統計開発者の場合、[Partner Center](https://partner.microsoft.com/dashboard) におけるイベント ベースの統計情報のポータル構成については、担当のデベロッパー アカウント マネージャー (DAM) にお問い合わせください。詳細については、[Partner Center での XBOX Live スタッツとスタッツ ルールの構成](https://developer.microsoft.com/en-us/games/xbox/partner/windows-configure-stats) を参照してください。</Note>

タイトル内では、RTA に追跡させたい統計情報を構成する必要があります。次のコード例に示すように、構成された統計情報のいずれかが変更されるたびに、タイトル ハンドラーが呼び出されます。

#### フラット C

```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" />

## RTA サービスからの登録解除

特定の統計情報 (または統計情報のセット) に対する更新が不要になった場合、タイトルは単にその統計情報の追跡を停止する必要があります。
統計情報の更新が完全に不要になった場合、登録されているすべてのハンドラーを削除すると、次のコード例に示すように、関連する RTA サブスクリプションが自動的に削除されます。

#### フラット C

```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>クライアントがマルチプレイヤー セッションに RTA を使用しており、30 秒間切断された場合、Multiplayer Session Directory (MPSD) は RTA セッションが閉じていることを検出し、プレイヤーをセッションから削除します。その後、XSAPI が自動的に RTA 接続を再確立します。ただし、RTA サブスクリプションが再確立された後に MPSD セッションを書き直すのはタイトルの責任です。</Info>

## 関連項目

[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

- [Real-Time Activity (RTA) サービスのサンプル コード](/ja-jp/services/xbox-services/fundamentals/rta/how-to/live-rta-howto-nav.md)
- [ハウツー](/ja-jp/services/xbox-services/fundamentals/rta/how-to/index.md)
- [ステータス変更通知のポータル構成](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-stat-change-notif-portal.md)
- [エンティティ プログラミング モデル](/ja-jp/services/playfab/live-service-management/game-configuration/entities/index.md)
- [クイックスタート (Windows) - PlayFab サービスの呼び出し](/ja-jp/services/playfab/sdks/unified-sdk/quickstart-services.md)
