次の方法で共有


RTA サービスのベスト プラクティス

このトピックは、タイトルでリアルタイム アクティビティ (RTA) サービスを最大限に活用するために使用します。

基本を知ろう

RTA は、WebSocket セッションを使用してクライアントとの固定接続を作成します。 それにより、サービスは統計情報をデベロッパーに提供します。 クライアントが認証接続要求を送信すると、RTA は、提供されたトークンを使用して接続を作成できることを確認し、接続を確立します。

接続が確立されると、アプリケーションは特定の統計情報のサブスクライブを要求できます。 サブスクリプションが成功すると、RTA は、応答のペイロードとして、現在の値といくつかの追加のメタデータ (統計情報の型など) を返します。 RTA は、クライアントのサブスクライブ中に発生した統計上の更新を送信します。

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

Disconnecting

ユーザーの認証トークンが期限切れになると、サービスによってセッションが終了されます。 このような場合は、タイトルは、この動作に応じて処理する必要があります。 RTA 接続は設計上 2 時間後に閉じられます。そのため、クライアントは再接続する必要があります。 これは、メッセージの帯域幅を節約するための接続キャッシュ処理の認証トークンに起因します。 最終的にそのトークンじゃ期限切れになります。 接続を閉じ、クライアントに再接続を強いることによって、クライアントは認証トークンを更新します。 Xbox サービス API (XSAPI) は、事前に RTA に再接続し 90 分後にサブスクリプションを再送信することによって、タイトルの認証トークンの更新を処理します。 クライアントは、ユーザーの ISP に問題がある場合、またはタイトルのプロセスが一時停止された場合にも切断されることがあります。

いずれの場合も、タイトルが RTA 接続状態変更イベントに登録されていると、切断されたイベントが発生します。

注意

通常は、接続が切断されたときに、タイトルからの操作は必要ありませんが、RTA 接続が切断されたことを反映するように UI を更新することが必要になる場合があります。

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

注意

クライアントがマルチプレイヤー セッションに RTA を使用し、30 秒間で切断された場合、マルチプレイヤー セッション ディレクトリ (MPSD) で RTA セッションが閉じられていることが検出され、ユーザーがそのセッションから除外されます。 XSAPI は RTA 接続を自動的に再確立しますが、RTA サブスクリプションが再確立されたときに MPSD セッションを書き直す処理を担うのはタイトルです。

MPSD の詳細については、「マルチプレイヤー セッション ディレクトリの概要」を参照してください。

サブスクライブ解除

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

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

サブスクリプションの制限の詳細については、この後の「調整」を参照してください。

キュー内の潜在項目について

統計情報のサブスクライブ解除時に、その統計情報の更新があるにもかかわらずそれがクライアントにまだ届いていない場合があります。 そのため、タイトルが統計情報のサブスクライブを解除しても、その統計情報に関する 1 ~ 2 個の更新をまだ受け取る可能性があることに注意してください。

サブスクリプション ID を認識できない場合は、その統計情報の更新を無視することをお勧めします。

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

メッセージ プロトコルは更新される可能性があります。 アプリケーションが新しいメッセージに縛られないようにするために、タイトルでは、不明な種類のメッセージは破棄することをお勧めします。

調整

RTA では、UserStats の調整制限は 1000、Presence の調整制限は 2500 です。

調整の制限に達すると、クライアントはサブスクライブ/サブスクライブ解除呼び出しの一部としてエラーを受け取るか、または切断されます。 どちらの場合も、エラー メッセージまたは切断メッセージと共に、到達した調整の制限に関する詳細情報がクライアントに提供されます。

タイトルの開発時には、これらの概念を心に留めておいてください。 何か極端なことをしようとすると、サービスが呼び出しを制限する可能性があるため、アプリケーションのエクスペリエンスが低下する場合があります。

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

関連項目

リアルタイム アクティビティ サービスの概要
プレイヤー統計情報の変更通知の登録
XSAPI の概要