Gerenciamento de sessão do Remote Rendering

Concluído

O Azure Remote Rendering fornece a API REST de gerenciamento de sessão para gerenciar interações com o servidor de nuvem e consultar informações sobre sessões do Remote Rendering. Em C# e C++, você pode criar, atualizar e parar sessões por meio das classes RemoteRenderingClient e RenderingSession. Esta unidade descreve como gerenciar sessões do Remote Rendering.

Criar uma sessão

O comando a seguir solicita a criação de uma sessão.

Invoke-WebRequest -Uri "$endPoint/v1/accounts/$accountId/sessions/create" -Method Post -ContentType "application/json" -Body "{ 'maxLeaseTime': '4:0:0', 'models': [], 'size': 'standard' }" -Headers @{ Authorization = "Bearer $token" }

Ao criar uma sessão, você pode usar o parâmetro maxLeaseTime para especificar um tempo máximo de concessão, normalmente no intervalo de uma a oito horas. O tempo máximo de concessão é a duração durante a qual o host aceita entrada. Se necessário, você pode estender o tempo de concessão de uma sessão ativa.

A resposta da solicitação retorna um sessionId, que permite consultar informações sobre a sessão. Este UUID e algumas informações básicas sobre a sessão persistem por 30 dias, para que você possa consultar essas informações mesmo depois que a sessão for interrompida.

Conectar-se a um servidor

Quando uma sessão estiver pronta, um dispositivo cliente poderá se conectar a ela e poderá enviar comandos para carregar e modificar modelos. Quando RenderingSession.IsConnected é true, RenderingSession.Connection retorna uma instância de RenderingConnection, que contém as funções para carregar modelos, manipular entidades e consultar informações sobre a cena renderizada.

Você pode criar, observar e desligar quantas sessões desejar de um determinado aplicativo, mas apenas um dispositivo pode se conectar a uma sessão do Remote Rendering por vez. As tentativas de se conectar à sessão por outros dispositivos falham. Outro dispositivo só pode se conectar depois que a sessão for interrompida.

Já que cada host do Azure Remote Rendering só atende a um dispositivo cliente por vez, o cliente conectado a uma sessão tem controle exclusivo sobre o conteúdo renderizado. A conexão de cliente único também significa que o desempenho de renderização nunca varia por motivos fora do seu controle.

Parar uma sessão

A sessão é interrompida quando o tempo máximo de concessão expira ou você interrompe a sessão manualmente. Para interromper manualmente uma sessão, você pode chamar RenderingSession.StopAsync. A sessão também pode ser interrompida devido a alguma falha. Depois que a sessão for interrompida, você não será mais cobrado e todos os estados anteriores, como modelos carregados, serão descartados.

Depois que uma sessão for interrompida, você poderá consultar a ID de sessão persistente usando RenderingSession.SessionUuid(). Um aplicativo pode chamar RemoteRenderingClient.OpenRenderingSessionAsync com a ID da sessão para associar a essa sessão e armazená-la em cache localmente.