Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Conecte-se ao Atlas App Services - Kotlin SDK

Nesta página

  • Pré-requisitos
  • Inicialize o cliente do aplicativo
  • Cliente de aplicativo padrão
  • Cliente de aplicativo configurado
  • Configurar o cliente do aplicativo
  • Compartilhar conexões de sincronização
  • Configurar tempos limite de sincronização
  • Criptografar metadados de aplicativos
  • Definir HTTP headerspersonalizados
  • Habilitar a rede de plataforma
  • Conecte-se a um servidor MongoDB específico
  • Conecte-se a um servidor MongoDB diferente durante o tempo de execução
  • Feche o cliente do aplicativo

Esta página descreve como inicializar seu cliente de aplicativo e conectar-se ao backend do Atlas App Services usando o Kotlin SDK.

O cliente da aplicação é a interface do lado do cliente para o backend do App Services. Ele permite que você interaja com seu App Services App e fornece acesso à funcionalidade do App Services, incluindo:

Cada cliente de aplicativo está associado a um único ID de aplicativo. Para saber como localizar sua ID do aplicativo na interface do usuário do App Services, consulte Find Your App ID na documentação do App Services.

Antes de se conectar ao Atlas App Services, você precisa de um App Services App com uma ID de aplicativo.

Para começar, consulte Criar um aplicativo na documentação do App Services.

O Kotlin SDK usa a interface do aplicativo para acessar um cliente App .

Cada cliente App está associado a um único ID do aplicativo. Você pode ter várias instâncias de cliente de aplicativo que se conectam a vários aplicativos, mas todas as instâncias de cliente de aplicativo que compartilham o mesmo ID de aplicativo usam a mesma conexão subjacente.

Você pode inicializar um cliente de aplicação chamando um dos seguintes métodos:

  • .create(): inicializa um aplicativo com valores de configuração padrão

  • .build(): inicializa um aplicativo com valores de configuração personalizados passados por um objeto AppConfiguration

Após inicializar o Aplicativo, você pode utilizar a instância do App para acessar a funcionalidade do App Services.

Para inicializar um aplicativo com valores de configuração padrão, passe o ID do aplicativo para seu App Services App para o método App.create() :

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

A interface AppConfiguration permite que você configure seu cliente de aplicativo com argumentos opcionais para um controle mais granular dos detalhes de conexão do aplicativo, como cabeçalhos de solicitação personalizados e chaves para criptografia local.

Para controlar as opções de configuração, use o AppConfiguration.Builder e chame o método .build() para passar um objeto de configuração:

// 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()

Alterado na versão 1.14.0: baseUrl não está armazenado em cache no AppConfiguration

Quando você cliente o , a configuração é armazenada em cache internamente.

A tentativa de fechar e reabrir uma aplicação com uma configuração alterada dentro do mesmo processo não tem efeito. O cliente continua usando a configuração em cache.

A partir do Kotlin SDK versão 1.14.0, o baseUrl() não é mais armazenado em cache no AppConfiguration. Isso significa que você pode alterar o baseUrl e o cliente da aplicação usará a configuração atualizada. Em versões anteriores do SDK, as alterações no baseUrl em uma configuração de aplicativo em cache não têm efeito.

As seções seguintes descrevem como construir o cliente do AppConfiguration com propriedades específicas.

Observação

Aplica-se ao Atlas Device Sync

Esta opção de configuração só se aplica a aplicativos que utilizam Atlas Device Sync. Para obter mais informações sobre como usar o Device Sync com o Kotlin SDK, consulte Adicionar o Device Sync a um aplicativo - Kotlin SDK.

Novidade na versão 1.13.0.

Por padrão, o SDK abre uma conexão separada com o servidor para cada domínio sincronizado. No Kotlin v1.13.0 e posterior, você pode habilitar a multiplexação de sessão. Quando ativado, o SDK compartilha uma conexão com o servidor para todos os domínios sincronizados abertos com um único usuário do Atlas App Services. O compartilhamento de uma conexão em várias sessões reduz os recursos e pode melhorar o desempenho.

A multiplexação está desabilitada por padrão. Você pode habilitá-lo no AppConfiguration usando o arquivo .enableSessionMultiflexing() , que aceita um valor booleano.

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

Quando ativada, a conexão compartilhada não fecha imediatamente quando todas as sessões são fechadas. Em vez disso, ele permanece aberto pelos connectionLingerTime, que é padronizado para 30 segundos. Você pode substituir esta duração passando um novo valor para SyncTimeoutOptions.connectionLingerTime() no AppConfiguration.

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

Para obter mais informações, consulte a seção Configurar tempos limite de sincronização nesta página.

Observação

Aplica-se ao Atlas Device Sync

Esta opção de configuração só se aplica a aplicativos que utilizam Atlas Device Sync. Para obter mais informações sobre como usar o Device Sync com o Kotlin SDK, consulte Adicionar o Device Sync a um aplicativo - Kotlin SDK.

Novidade na versão 1.13.0.

No Kotlin v1.13.0 e posterior, você pode substituir as configurações de tempo limite padrão usadas ao sincronizar dados entre o backend do Atlas e o aplicativo cliente .

Você pode definir várias configurações de tempo limite de sincronização no AppConfiguration usando o .syncTimeouts() método. Passe valores de propriedade de tempo limite específicos que você deseja substituir. Os tempos limite configurados se aplicam a todas as sessões de sincronização no aplicativo.

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

Para obter uma lista completa das propriedades de tempo limite disponíveis e suas definições, consulte a referência da API SyncTimeoutOptionsBuilder .

Quando você se conecta ao App Services, o Realm cria arquivos de metadados adicionais em um dispositivo. Para mais informações sobre estes arquivos de metadados, consulte Atlas Device SDK for Kotlin.

Você pode criptografar os metadados que o Atlas App Services armazena em dispositivos clientes, semelhante à forma como você criptografa um domínio Realm.

Para criptografar os metadados do aplicativo, passe sua chave de encriptação para a propriedade encryptionKey ao inicializar o aplicativo:

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

Novidades na versão 1.11.0.

Se você usar o App Services ou o Device Sync com uma configuração de proxy, talvez seja necessário definir HTTP headers personalizados. O Kotlin SDK suporta a configuração de HTTP headers personalizados no aplicativo. Esses cabeçalhos são anexados a cada solicitação ao App Services App, incluindo chamadas de função.

Ao inicializar o aplicativo, você pode passar:

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

Novidades na versão 1.14.0.

A rede de plataforma do Atlas Device SDK permite que você use a pilha de rede da sua plataforma em vez do cliente WebSocket padrão para o tráfego do Device Sync .

Quando habilitado, você pode configurar aplicativos em execução em plataformas Android e Java Virtual Machine (JVM) para usar WebSockets gerenciados pelo OkHttp. Os WebSockets gerenciados fornecem suporte de configuração avançada para proxies e firewalls que exigem autenticação.

A rede de plataforma está desabilitada por padrão. Você pode habilitá-lo no AppConfiguration utilizando o AppConfiguration.usePlatformNetwork() , que aceita um valor booleano.

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

Observação

Somente plataformas Android e JVM

Atualmente, este recurso está disponível apenas em plataformas Android e Java Virtual Machine (JVM).

Por padrão, o Atlas Device SDK se conecta ao Atlas usando o baseUrl global de https://services.cloud.mongodb.com. Em alguns casos, você pode querer se conectar a um servidor diferente:

  • Seu App Services App usa o sistema local e você deseja se conectar diretamente a um baseUrl local em sua região.

Para obter mais informações, consulte a documentação do Local Deployment App Services.

Você pode especificar um baseUrl no AppConfiguration:

// Specify a baseUrl to connect to instead of the default
val config = AppConfiguration.Builder(YOUR_APP_ID)
.baseUrl("https://example.com")
.build()

Novidades na versão 1.16.0.

Em alguns casos, você pode querer alterar o baseUrl enquanto o aplicativo está em execução.

Para alterar o baseUrl durante o tempo de execução, chame o método experimental app.updateBaseUrl . Você pode passar null para redefinir o baseUrl para o valor padrão.

// Specify a custom baseUrl to connect to.
// In this case, an Edge Server instance running on the device:
val config = AppConfiguration.Builder(EDGE_SERVER_APP_ID)
.baseUrl("http://localhost:80")
.build()
val app = App.create(config)
// ... log in a user and use the app ...
// Later, change the baseUrl.
// In this case, pass `null` to reset to default:
// https://services.cloud.mongodb.com
app.updateBaseUrl(null)

Se você alterar o baseUrl após ter conectado um usuário e aberto um banco de banco de dados sincronizado, o aplicativo deverá executar um reinício do cliente. Para obter mais informações, consulte Gerenciar erros de redefinição do cliente.

Execute o seguinte em seu código:

  1. Pausar a sessão de sincronização

  2. Atualize o baseUrl utilizando o método app.updateBaseUrl

  3. Autentique novamente o usuário para fazer login usando o novo baseUrl

  4. Abra um banco de dados de dados sincronizado extraindo dados do novo servidor

Tanto o servidor quanto o cliente devem estar online para que o usuário se autentique e se conecte ao novo servidor. Se o servidor não estiver online ou o cliente não tiver uma conexão de rede, o usuário não poderá autenticar e abrir o banco de dados de dados.

Você pode fechar manualmente uma instância do aplicativo e liberar todos os recursos subjacentes usando o método App.close() :

app.close()

Se não forem fechados manualmente, os recursos serão liberados quando a instância do aplicativo for coletada como lixo.

Voltar

Conectar-se ao Atlas