Gerenciamento de sessão de renderização remota
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.