连接到 Atlas App Services 后端 - .NET SDK
应用客户端是与 App Services 后端的接口。 它提供对身份验证功能和同步管理的访问。
访问应用程序客户端
传递应用的 App ID ,您可以在Realm 用户界面中找到该 ID。
var myRealmAppId = "<your_app_id>"; var app = App.Create(myRealmAppId);
配置
对于大多数使用案例,您只需要应用程序的 App ID即可连接到App Services。 为了对应用连接进行精细控制,例如自定义连接超时和日志级别,您可以选择将AppConfiguration对象传递给App.Create()方法。 以下示例设置了 LogLevel 和请求超时:
var appConfig = new AppConfiguration(myRealmAppId) { DefaultRequestTimeout = TimeSpan.FromMilliseconds(1500) }; app = App.Create(appConfig);
您可以创建多个应用客户端实例以连接多个应用。 股票相同 App ID的所有 App客户端实例使用相同的根本的连接。
连接到特定MongoDB Server
默认情况下,Atlas Device SDK 使用https://services.cloud.mongodb.com
的全局 baseURL
连接到 Atlas。 在某些情况下,您可能想要连接到不同的服务器:
您的 App Services App 使用本地部署,并且您希望直接连接到您所在区域的本地
baseURL
。
您可以在AppConfiguration中指定baseURL
。
// 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);
在运行时连接到不同的MongoDB Server
12.1.0版本新增。
在某些情况下,您可能希望在应用运行时更改baseURL
。 要在运行时更改baseURL
,请调用应用的 .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. await app.UpdateBaseUriAsync(new Uri("https://services.cloud.mongodb.com"));
此API是实验性的。 如上所示,您必须使用#pragma warning disable Rlm001
和#pragma warning restore Rlm001
来抑制实验误差,其中Rlm001
是实验属性的diagnosticId
。
如果要在用户登录并打开同步数据库后更改baseURL
,则应用必须执行客户端重置。 在代码中执行以下步骤:
通过调用
app.updateBaseUrl(to: )
方法更新baseURL
。使用新的
baseURL
再次对用户进行身份验证并登录。打开从新服务器提取数据的同步数据库。
服务器和客户端都必须在线,用户才能进行身份验证并连接到新服务器。 如果服务器不在线或客户端没有网络连接,则用户无法进行身份验证并打开数据库。
重要
初始化应用后更改应用配置
在版本 v 11.7.0中进行了更改: BaseUri
未缓存在应用配置中
初始化 App客户端时,会在内部缓存配置。 尝试在同一进程中关闭并重新打开配置已更改的应用无效。 客户端继续使用缓存的配置。
在.NET SDK 11.7.0及更高版本中, BaseUri不再缓存在应用配置中。 这意味着您可以更改BaseUri
,应用客户端将使用更新后的配置。 在早期 SDK 版本中,对缓存的应用配置中的BaseUri
进行更改无效。