Gerenciamento de sessão de renderização remota

Concluído

A Renderização Remota do Azure 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 de Renderização Remota. Em C# e C++, você pode criar, atualizar e interromper sessões através das RemoteRenderingClient classes e RenderingSession . Esta unidade descreve como gerenciar sessões de renderização remota.

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 nova sessão, você usa o maxLeaseTime parâmetro 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 a entrada. Você pode estender o tempo de concessão de uma sessão ativa, se necessário.

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 as informações mesmo após a sessão ter parado.

Ligar a uma sessão

Quando uma sessão estiver pronta, um dispositivo cliente pode se conectar a ela e 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 quiser a partir de um único aplicativo, mas apenas um dispositivo pode se conectar a uma sessão de renderização remota de cada vez. As tentativas de conexão com a sessão por outros dispositivos falham. Outro dispositivo pode se conectar somente depois que a sessão para.

Como um host de renderização remota serve apenas um dispositivo cliente de cada 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 para 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 parar devido a alguma falha. Quando a sessão para, você não é mais cobrado e todos os estados anteriores, como modelos carregados, sã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 o ID da sessão para vincular a essa sessão e armazená-la em cache localmente.