ここで説明する REST および SignalR API はクライアント SDK より複雑です。これらの SDK が要件を満たさない場合を除き、代わりに Lobby C++ SDK または Matchmaking C++ SDK の使用をご検討ください。
SignalR Hub への接続
リアルタイム メッセージを受信する最初の手順は、SignalR クライアント を作成することです。クライアントは、次の API を使用して HubConnection をインスタンス化 することで SignalR Hub への接続を作成できます。SignalR Negotiate REST API。この API は、SignalR のドキュメント で説明されている Negotiate API を実装しています。クライアントは
HubConnection を構築する際に KeepAliveInterval を 5 秒 に設定する 必要があります。バックエンド サービスは、10 秒 以内にキープアライブ ping を受信しなかった接続をタイムアウトして閉じます。SignalR の既定の KeepAliveInterval である 15 秒では遅すぎ、切断の原因となります。 csharp var connection = new HubConnectionBuilder() .WithUrl(hubUrl, options => { /* auth headers */ }) .WithKeepAliveInterval(TimeSpan.FromSeconds(5)) .Build(); SignalR クライアント構成の詳細については、SignalR 構成のドキュメント を参照してください。- SignalR クライアントの実装では、URL からこのパスの
/negotiate部分を省略する必要があります (たとえば、HubConnection は...playfabapi.com/pubsubで終わる URL に対して作成します)。 1. この API の呼び出しに必要な認証ヘッダーは、このメソッド で示されているようにHttpConnectionOptionsを通じて SignalR クライアントに渡すことができます。
メッセージを受信するクライアント メソッドの実装
メッセージを受信するために呼び出される クライアント メソッドの実装に関する SignalR クライアントのドキュメントを参照してください。クライアントは、以下の Client methods に記載されているすべてのメソッドを実装する必要があります。サーバー メソッドを呼び出してセッションを開始・終了する
セッションを管理するために、サーバー メソッドの呼び出しに関する SignalR クライアントのドキュメントを参照してください。たとえば、ハブに接続した後は、StartOrRecoverSession を呼び出して、リソースをサブスクライブ するために使用できるconnection handle を取得する必要があります。同様に、セッションが終了したら EndSession を呼び出します。
リソースへのサブスクライブ
StartOrRecoverSession でセッションを開始した後、返されたconnection handle を使用して リソースをサブスクライブ し、メッセージの受信を開始できます。
