Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas App Services バックエンドへの接続 - .NET SDK

項目一覧

  • アプリ クライアントへのアクセス
  • 構成
  • 特定のサーバーへの接続
  • 実行中に別のサーバーへの接続

App クライアントは、App Services バックエンドへのインターフェースです。 認証機能関数同期マネジメントへのアクセスを提供します。

アプリのアプリ ID を渡します。このアプリ IDは Realm UI でで確認できます。

var myRealmAppId = "<your_app_id>";
var app = App.Create(myRealmAppId);

ほとんどのユースケースでは、App Services に接続するためにアプリケーションのアプリケーション ID のみが必要です。 接続のカスタム タイムアウトやログ レベルなど、アプリ接続をより細かく制御するには、オプションでAppConfigurationオブジェクトをApp.Create()メソッドに渡すことができます。 次の例では、 LogLevel とリクエスト タイムアウトを設定します。

var appConfig = new AppConfiguration(myRealmAppId)
{
DefaultRequestTimeout = TimeSpan.FromMilliseconds(1500)
};
app = App.Create(appConfig);

複数のアプリに接続するには、複数のアプリクライアントインスタンスを作成します。 同じアプリ ID を共有するすべてのアプリクライアント インスタンスは、同じ基礎の接続を使用します。

デフォルトでは、Atlas Device SDK はhttps://services.cloud.mongodb.comのグローバル baseURLを使用して Atlas に接続します。 場合によっては、別のサーバーに接続する必要があるかもしれません。

AppConfigurationbaseURLを指定できます。

// Specify a base URL to connect to a server other than the default.
var appConfig = new AppConfiguration(YOUR_APP_ID);
appConfig.BaseUri = new Uri("http://localhost:80");
var app = App.Create(appConfig);

バージョン12.1.0の新機能

場合によっては、アプリの実行中にbaseURLを変更する必要があるかもしれません。 たとえば、Edge Server 間でローテーションしたり、App Services 接続から Edge Server 接続に移行したりする場合があります。 実行時にbaseURLを変更するには、 app.UpdateBaseUriAsync()メソッドを呼び出します。

// Specify a baseURL to connect to a server other than the default.
// In this case, an Edge Server instance running on the device
var appConfig = new AppConfiguration(YOUR_APP_ID);
appConfig.BaseUri = new Uri("http://localhost:80");
var app = App.Create(appConfig);
// ... log in a user and use the app ...
// Update the base URL back to the default.
#pragma warning disable Rlm001 // suppress the warning for the experimental method
await app.UpdateBaseUriAsync(new Uri("https://services.cloud.mongodb.com"));
#pragma warning restore Rlm001

この API は実験的なものです。 上記でわかるように、実験エラーを抑制するには、 #pragma warning disable Rlm001#pragma warning restore Rlm001を使用する必要があります。ここで、 Rlm001は実験属性のdiagnosticIdです。

If you want to change the baseURL after you have logged in a user and have opened a synced database, the app must perform a client reset. コード内で次の手順を実行します。

  1. 同期セッションを一時停止します。

  2. app.updateBaseUrl(to: )メソッドを呼び出してbaseURLを更新します。

  3. 新しいbaseURLを使用してユーザーを再度認証してログインします。

  4. 同期されたデータベースを開き、新しいサーバーからデータをプルします。

ユーザーが認証を行い、新しいサーバーに接続するには、サーバーとクライアントの両方がオンラインである必要があります。 サーバーがオンラインでない場合、またはクライアントにネットワーク接続がない場合、ユーザーは認証を行いデータベースを開くことができません。

重要

アプリ初期化後のアプリ構成の変更

バージョン v 11.7.0での変更: BaseUriはアプリ構成にキャッシュされません

App クライアントを初期化すると、構成は内部的にキャッシュされます。 同じプロセス内で変更された構成でアプリを閉じてから再度開かしようとしても効果はありません。 クライアントはキャッシュされた構成を引き続き使用します。

.NET SDK バージョン11.7.0以降では、 BaseUriはアプリ構成でキャッシュされなくなりました。 つまり、 BaseUriを変更でき、アプリクライアントは更新された構成を使用します。 以前の SDK バージョンでは、キャッシュされたアプリ構成でBaseUriを変更しても効果はありません。

戻る

アプリケーションサービス