> ## 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 サービスのベスト プラクティス

> サブスクリプション、トークンの有効期限、再接続のウィンドウ、および XSAPI の処理をカバーする Real-Time Activity (RTA) WebSocket サービスのベスト プラクティスです。

このトピックを参照して、タイトルで Real-Time Activity (RTA) サービスを最大限に活用してください。

## 基本

RTA は [WebSocket](https://learn.microsoft.com/iis/configuration/system.webserver/websocket) セッションを使用して、クライアントとの永続的な接続を作成します。
これにより、サービスは統計情報を配信します。
クライアントが認証された接続要求を送信すると、RTA は提供されたトークンを使用して接続が可能であることを確認し、接続を確立します。

接続が確立されると、アプリは特定の統計情報にサブスクライブする要求を行うことができます。
サブスクリプションが成功すると、RTA は応答ペイロードの一部として、現在の値と、統計情報の種類などの追加のメタデータを返します。
RTA は、クライアントがサブスクライブしている間に発生する統計情報の更新を転送します。

タイトルが統計情報のリアルタイム更新を必要としない場合、その統計情報の追跡を停止します。

## 切断

ユーザーの認証トークンが期限切れになると、セッションはサービスによって終了されます。このような状況でタイトルは適切に対応する必要があります。
RTA 接続は設計上、2 時間後にクローズされるため、クライアントは強制的に再接続する必要があります。
これは、メッセージの帯域幅を節約するために接続の認証トークンがキャッシュされているためです。
やがてそのトークンは期限切れになります。
接続をクローズしてクライアントに再接続を強制することにより、クライアントは認証トークンを更新します。
[XBOX Services API (XSAPI)](/services/xbox-services/fundamentals/xbox-services-api/live-introduction-to-xbox-live-apis) は、90 分後に RTA に事前に再接続してサブスクリプションを再送信することで、タイトルの認証トークンの更新を処理します。
ユーザーの ISP の問題や、タイトルのプロセスが中断された場合にクライアントが切断されることがあります。

これらの各ケースにおいて、RTA 接続状態変更イベントに登録しているタイトルには、切断イベントが発生します。

<Note>一般に、切断時にタイトルからのアクションは必要ありませんが、RTA 接続が失われたことを反映するように UI を更新したい場合があります。</Note>

XSAPI は自動的に WebSocket 接続の再確立を試み、既存の RTA サービス サブスクリプションを維持します。

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

MPSD の詳細については、[Multiplayer Session Directory の概要](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview) を参照してください。

## サブスクリプション解除

不要なリアルタイム更新のために統計情報を追跡することはお勧めしません。
追跡された各統計情報は RTA サブスクリプションに対応し、サービスはタイトルごとにユーザーが持てるサブスクリプションの数を制限します。
すべてにサブスクライブしている場合、その制限に達し、重要な統計情報にサブスクライブできなくなる可能性があります。

たとえば、タイトルは特定のシーン内にある統計情報の更新のみが必要な場合があります。
ユーザーがそのシーンに入ったら、タイトルはその統計情報を追跡する必要があります。
ユーザーがそのシーンを離れたら、タイトルはその統計情報の追跡を停止する必要があります。
同様に、統計情報が変更された場合でも通知が不要な場合があります。
すべての統計情報変更ハンドラーを削除すると、XSAPI は関連する RTA サブスクリプションを自動的に解除します。

サブスクリプション制限の詳細については、このトピックで後述する「スロットリング」セクションを参照してください。

## キュー内の遅延項目に対する認識

統計情報からサブスクリプション解除するとき、まだクライアントに到達している途中の統計情報の更新が存在する可能性があります。
そのため、タイトルが統計情報からサブスクリプション解除した直後でも、その統計情報に関連する 1 つか 2 つの更新をまだ受け取る可能性があることに注意してください。

サブスクリプション識別子が認識されない場合、統計情報の更新を無視することをお勧めします。

## 理解できないメッセージは無視する

メッセージ プロトコルは更新される可能性があります。アプリを新しいメッセージにとらわれない状態に保つため、タイトルは不明なメッセージ タイプを破棄することをお勧めします。

## スロットリング

RTA は `UserStats` スロットルを 1000、`Presence` スロットルを 2500 で強制します。

クライアントがスロットリング制限に達した場合、サブスクライブまたはサブスクリプション解除の呼び出しの一部としてエラーを受け取るか、切断されます。
いずれの場合も、達したスロットリング制限に関する詳細情報は、エラーまたは切断メッセージと共にクライアントで利用できるようになります。

タイトルを開発する際は、これらの概念を念頭に置いてください。極端な動作をしている場合、サービスが呼び出しをスロットリングするため、アプリ体験が低下する可能性があります。

RTA の現在のリリースでは、アプリのインスタンスごとに 1000 の統計情報サブスクリプションを持つことができます。
さらに、アプリのインスタンスは、プレゼンス更新のためにユーザーのフレンド リスト全体の長さにもサブスクライブできます。
この数は将来のリリースで変わる可能性があります。

## 関連項目

[Real-Time Activity サービスの概要](/services/xbox-services/fundamentals/rta/live-real-time-activity-service-overview)
[プレイヤーの統計変更通知の登録](/services/xbox-services/fundamentals/rta/concepts/live-register-for-stat-notifications)
[XSAPI 入門](/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis)


## Related topics

- [Real-Time Activity (RTA) サービスの概念](/ja-jp/services/xbox-services/fundamentals/rta/concepts/live-rta-concepts-nav.md)
- [概念](/ja-jp/services/xbox-services/fundamentals/rta/concepts/index.md)
- [XBOX services 呼び出しのベストプラクティス](/ja-jp/services/xbox-services/develop/best-practices/live-best-practices-calling-xbl.md)
- [リッチ プレゼンスのベスト プラクティス](/ja-jp/services/xbox-services/community/presence/concepts/live-presence-best-practices.md)
- [クイックスタート (Windows) - PlayFab サービスの呼び出し](/ja-jp/services/playfab/sdks/unified-sdk/quickstart-services.md)
