Administración de sesiones de Remote Rendering
Azure Remote Rendering proporciona la API REST de administración de sesiones para administrar las interacciones con el servidor en la nube y consultar información sobre las sesiones de Remote Rendering. En C# y C++, puede crear, actualizar y detener sesiones a través de las clases RemoteRenderingClient
y RenderingSession
. En esta unidad se describe cómo administrar sesiones de Remote Rendering.
Creación de una sesión
El comando siguiente solicita la creación de una sesión.
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" }
Al crear una nueva sesión, use el parámetro maxLeaseTime
para especificar un tiempo de concesión máximo, normalmente en el intervalo entre una a ocho horas. El tiempo máximo de concesión es la duración durante la cual el host acepta la entrada. Si es necesario, el tiempo de concesión de una sesión activa se puede ampliar.
La respuesta de la solicitud devuelve un sessionId
, que permite consultar información sobre la sesión. Tanto este UUID como la información básica sobre la sesión se conservan 30 días, por lo que puede la información se puede consultar incluso después de que la sesión se haya detenido.
Se conecta a una sesión.
Una vez que una sesión esté lista, un dispositivo cliente puede conectarse a ella y puede enviar comandos para cargar y modificar modelos. Cuando RenderingSession.IsConnected
es true
, RenderingSession.Connection
devuelve una instancia de RenderingConnection
, que contiene las funciones para cargar modelos, manipular entidades y consultar información sobre la escena representada.
Puede crear, observar y apagar tantas sesiones como desee desde una sola aplicación, pero los dispositivos deben conectarse a una sesión de Remote Rendering de uno en uno. Se produce un error al intentar conectarse a la sesión por otros dispositivos. Otro dispositivo solo puede conectarse después de que se detenga la sesión.
Dado que los hosts de Remote Rendering solo sirven a los dispositivos cliente de uno en uno, el cliente conectado a una sesión tiene control exclusivo sobre el contenido representado. La conexión de cliente única también significa que el rendimiento de la representación nunca varía por motivos que están fuera de su control.
detención de una sesión
La sesión se detiene cuando expira el tiempo máximo de concesión o cuando se detiene manualmente. Para detener manualmente una sesión, puede llamar a RenderingSession.StopAsync
. La sesión también puede detenerse debido a un error. Una vez que se detiene la sesión, ya no se le factura y se descartan todos los estados anteriores, como los modelos cargados.
Después de que se detenga una sesión, puede consultar el identificador de sesión persistente mediante RenderingSession.SessionUuid()
. Una aplicación puede llamar a RemoteRenderingClient.OpenRenderingSessionAsync
con el identificador de sesión para enlazar a esa sesión y almacenarla en caché localmente.