Remote Rendering-Sitzungsverwaltung
Azure Remote Rendering stellt die REST-API für die Sitzungsverwaltung bereit, um Interaktionen mit dem Cloudserver zu verwalten und Informationen zu Remote Rendering-Sitzungen abzufragen. In C# und C++ können Sie Sitzungen über die Klassen RemoteRenderingClient
und RenderingSession
erstellen, aktualisieren und beenden. In dieser Lerneinheit wird beschrieben, wie Remote Rendering-Sitzungen verwaltet werden.
Erstellen einer Sitzung
Der folgende Befehl fordert die Erstellung einer Sitzung an:
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" }
Wenn Sie eine neue Sitzung erstellen, können Sie mit dem maxLeaseTime
-Parameter die maximale Leasedauer angeben, in der Regel eine Zeitspanne von einer bis acht Stunden. Die maximale Leasedauer ist die Dauer, während der der Host Eingaben akzeptiert. Sie können die Leasedauer einer aktiven Sitzung bei Bedarf verlängern.
Die Antwort auf die Anforderung gibt eine sessionId
zurück, mit der Sie Informationen zur Sitzung abfragen können. Diese UUID und einige grundlegende Informationen zur Sitzung werden 30 Tage lang gespeichert, sodass Sie diese auch dann noch abfragen können, nachdem die Sitzung beendet wurde.
Stellt eine Verbindung mit einer Sitzung her.
Sobald eine Sitzung bereit ist, kann ein Clientgerät eine Verbindung zu ihr herstellen und Befehle zum Laden und Ändern von Modellen senden. Wenn RenderingSession.IsConnected
true
ist, gibt RenderingSession.Connection
eine Instanz von RenderingConnection
zurück, die die Funktionen zum Laden von Modellen, Bearbeiten von Entitäten und Abfragen von Informationen über die gerenderte Szene enthält.
Sie können beliebig viele Sitzungen über eine einzelne Anwendung erstellen, beobachten und herunterfahren. Jedoch kann nur ein Gerät gleichzeitig eine Verbindung zu einer Remote Rendering-Sitzung herstellen. Verbindungsversuche zur Sitzung durch anderen Geräten schlagen fehl. Ein anderes Gerät kann erst dann eine Verbindung herstellen, wenn die Sitzung beendet wurde.
Da ein Remote Rendering-Host nur jeweils ein Clientgerät bedienen kann, hat das mit der Sitzung verbundene Clientgerät die ausschließliche Kontrolle über den gerenderten Inhalt. Die Beschränkung der Verbindung auf einen Client bedeutet auch, dass die Renderingleistung niemals aus Gründen variieren kann, die außerhalb Ihrer Kontrolle liegen.
Beenden einer Sitzung
Die Sitzung wird beendet, wenn die maximale Leasedauer abläuft, oder wenn Sie die Sitzung manuell beenden. Sie können RenderingSession.StopAsync
aufrufen, um eine Sitzung manuell zu beenden. Die Sitzung kann möglicherweise auch aufgrund eines Fehlers beendet werden. Sobald die Sitzung beendet wird, fallen für Sie keine weiteren Kosten an, und alle vorherigen Zustände wie geladene Modelle werden verworfen.
Nachdem eine Sitzung beendet wurde, können Sie die ID der permanenten Sitzung mit RenderingSession.SessionUuid()
abfragen. Eine Anwendung kann RemoteRenderingClient.OpenRenderingSessionAsync
mit der Sitzungs-ID aufrufen, um sich an diese Sitzung zu binden und sie lokal zwischenzuspeichern.