Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Conectar a Atlas

Conéctate a Atlas App Services - Kotlin SDK

Esta página describe cómo inicializar el cliente de su aplicación y conectarse al backend de Atlas App Services mediante el SDK de Kotlin.

El cliente de la aplicación es la interfaz del lado del cliente para el backend de App Services. Permite interactuar con la aplicación de App Services y proporciona acceso a sus funciones, como:

Cada cliente de aplicación está asociado a un único ID de aplicación. Para saber cómo encontrar el ID de aplicación en la interfaz de usuario de App Services, consulte Encuentre el ID de su aplicación en la documentación de App Services.

Antes de poder conectarse a Atlas App Services, necesita una App Services App con un ID de la aplicación.

Para comenzar, consulta Crear una aplicación en la documentación de App Services.

El SDK de Kotlin utiliza la interfaz de la aplicación para acceder a una App cliente.

Cada cliente App está asociado a un único ID de aplicación. Puedes tener varias instancias de cliente de aplicación que se conecten a varias aplicaciones, pero todas las instancias de cliente de aplicación que comparten el mismo ID de aplicación usan la misma conexión subyacente.

Puede inicializar un cliente de aplicación llamando a uno de los siguientes métodos:

  • .create(): inicializa una aplicación con valores de configuración por defecto

  • .build(): initializes an App with custom configuration values passed through an AppConfiguration object

Una vez que inicialice la aplicación, puede usar la instancia App para acceder a la funcionalidad de los servicios de la aplicación.

Para inicializar una aplicación con valores de configuración por defecto, pasa el ID de la aplicación de tu App Services App al método App.create():

// Creates an App with default configuration values
val app = App.create(YOUR_APP_ID) // Replace with your App ID

La interfaz AppConfiguration permite configurar el cliente de la aplicación con argumentos opcionales para un control más detallado de los detalles de la conexión de la aplicación, como encabezados de solicitud personalizados y claves para cifrado local.

Para controlar las opciones de configuración, utilice AppConfiguration.Builder y llame al .build() método para pasar un objeto de configuración:

// Creates an App with custom configuration values
AppConfiguration.Builder(YOUR_APP_ID)
// Specify your custom configuration values
.appName("my-app-name")
.appVersion("1.0.0")
.baseUrl("http://localhost:9090")
.build()

Changed in version 1.14.0: baseUrl is not cached in the AppConfiguration

Cuando se inicializa el cliente de la aplicación, la configuración se almacena en caché internamente.

Intentar cerrar y volver a abrir una aplicación con una configuración modificada dentro del mismo proceso no tiene ningún efecto. El cliente continúa usando la configuración en caché.

A partir de la versión del SDK de Kotlin,1.14.0 baseUrl() ya no se almacena en caché AppConfiguration en. Esto significa que se baseUrl puede cambiar y ​​el cliente de la aplicación usará la configuración actualizada. En versiones anteriores del SDK, los cambios en baseUrl en una configuración de la aplicación almacenada en caché no surten efecto.

Las siguientes secciones describen cómo crear el cliente AppConfiguration con propiedades específicas.

Nota

Applies to Atlas Device Sync

This configuration option only applies to apps using Atlas Device Sync. For more information on using Device Sync with the Kotlin SDK, refer to Add Device Sync to an App - Kotlin SDK.

Novedades en la versión 1.13.0.

De forma predeterminada, el SDK abre una conexión independiente al servidor para cada dominio sincronizado. En Kotlin v1.13.0 y versiones posteriores, se puede habilitar la multiplexación de sesiones. Al habilitarla, el SDK comparte una conexión al servidor para todos los dominios sincronizados abiertos con un solo usuario de App Services. Compartir una conexión entre varias sesiones reduce los recursos y puede mejorar el rendimiento.

Multiplexing is disabled by default. You can enable it on the AppConfiguration using the .enableSessionMultiplexing() method, which accepts a Boolean value.

val config = AppConfiguration.Builder(YOUR_APP_ID)
.enableSessionMultiplexing(true)
.build()

Cuando está habilitada, la conexión compartida no se cierra de inmediato cuando todas las sesiones se cierran. En su lugar, permanece abierta durante el connectionLingerTime, que por defecto es 30 segundos. Puedes anular esta duración proporcionando un nuevo valor a SyncTimeoutOptions.connectionLingerTime() en el AppConfiguration.

val configCustomLingerTime = AppConfiguration.Builder(YOUR_APP_ID)
.enableSessionMultiplexing(true)
.syncTimeouts {
connectionLingerTime = 10.seconds // Overrides default 30 secs
}
.build()

Para obtener más información, consulta la sección Configurar límites de tiempo de sincronización en esta página.

Nota

Applies to Atlas Device Sync

This configuration option only applies to apps using Atlas Device Sync. For more information on using Device Sync with the Kotlin SDK, refer to Add Device Sync to an App - Kotlin SDK.

Novedades en la versión 1.13.0.

En Kotlin v1.13.0 y posteriores, puedes anular la configuración por defecto de timeout utilizada para sincronizar datos entre el backend de Atlas y la aplicación cliente.

Puedes configurar varios tiempos de espera de sincronización en AppConfiguration mediante el método .syncTimeouts(). Introduce los valores específicos de las propiedades de tiempo de espera que quieras anular. Los tiempos de espera configurados se aplican a todas las sesiones de sincronización de la aplicación.

val config = AppConfiguration.Builder(YOUR_APP_ID)
.syncTimeouts {
connectTimeout = 1.minutes
connectionLingerTime = 15.seconds
pingKeepalivePeriod = 30.seconds
pongKeepalivePeriod = 1.minutes
fastReconnectLimit = 30.seconds
}
.build()

For a complete list of the available timeout properties and their definitions, refer to the SyncTimeoutOptionsBuilder API reference.

Al conectarse a App Services, Realm crea archivos de metadatos adicionales en un dispositivo. Para obtener más información sobre estos archivos de metadatos, consulte el SDK de dispositivos Atlas para Kotlin.

Puedes cifrar los metadatos que App Services almacena en los dispositivos cliente, de forma similar a como cifras un dominio sincronizado.

Para cifrar los metadatos de la aplicación, pasa tu llave de cifrado a la propiedad encryptionKey al iniciar la aplicación:

val config =
AppConfiguration.Builder(YOUR_APP_ID)
// Specify the encryption key
.encryptionKey(myEncryptionKey)
.build()

Novedades en la versión 1.11.0.

Si usas App Services o Device Sync con una configuración de proxy, es posible que necesites establecer cabeceras HTTP personalizadas. El Kotlin SDK admite la configuración de HTTP headers personalizados en la aplicación. Estos encabezados se añaden a cada solicitud a la App Services App, incluidas las llamadas a funciones.

When you initialize the App, you can pass:

AppConfiguration.Builder(YOUR_APP_ID)
.authorizationHeaderName("MyApp-Authorization")
.customRequestHeaders { put("X-MyApp-Version", "1.0.0") }
.build()

Nuevo en la versión 1.14.0.

Atlas Device SDK's platform networking lets you use your platform's networking stack instead of the default WebSocket client for Device Sync traffic.

Cuando está habilitado, puede configurar aplicaciones que se ejecutan en plataformas Android y Java Virtual Machine (JVM) para usar WebSockets administrados a través de OkHttpLos WebSockets administrados brindan soporte de configuración avanzado para servidores proxy y firewalls que requieren autenticación.

El networking de la plataforma está deshabilitado por defecto. Puedes activarlo en el AppConfiguration utilizando el AppConfiguration.usePlatformNetworking() método, que acepta un valor booleano.

val config =
AppConfiguration.Builder(YOUR_APP_ID)
.usePlatformNetworking(true)
.build()

Nota

Android and JVM platforms only

This feature is currently only available on Android and Java Virtual Machine (JVM) platforms.

You can manually close an App instance and release all underlying resources using the App.close() method:

app.close()

If not closed manually, resources are freed when the App instance is garbage collected.

Volver

Conectar a Atlas

En esta página