Zdalne zarządzanie sesjami renderowania

Ukończone

Usługa Azure Remote Rendering udostępnia interfejs API REST zarządzania sesjami w celu zarządzania interakcjami z serwerem w chmurze i wykonywania zapytań dotyczących sesji renderowania zdalnego. W językach C# i C++można tworzyć, aktualizować i zatrzymywać sesje za pośrednictwem RemoteRenderingClient klas i RenderingSession . W tej lekcji opisano sposób zarządzania sesjami usługi Remote Rendering.

Tworzenie sesji

Następujące polecenie żąda utworzenia sesji.

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" }

Podczas tworzenia nowej sesji należy użyć parametru maxLeaseTime , aby określić maksymalny czas dzierżawy, zazwyczaj w zakresie od jednego do ośmiu godzin. Maksymalny czas dzierżawy to czas, w którym host akceptuje dane wejściowe. W razie potrzeby możesz przedłużyć czas dzierżawy aktywnej sesji.

Odpowiedź z żądania zwraca wartość sessionId, która umożliwia wykonywanie zapytań o informacje o sesji. Ten identyfikator UUID i niektóre podstawowe informacje o sesji są utrwalane przez 30 dni, dzięki czemu można wykonywać zapytania dotyczące informacji nawet po zatrzymaniu sesji.

Nawiązywanie połączenia z sesją

Gdy sesja będzie gotowa, urządzenie klienckie może się z nim połączyć i wysyłać polecenia, aby załadować i zmodyfikować modele. Gdy RenderingSession.IsConnected parametr to true, RenderingSession.Connection zwraca wystąpienie RenderingConnectionklasy , które zawiera funkcje do ładowania modeli, manipulowania jednostkami i wykonywania zapytań o renderowaną scenę.

Można tworzyć, obserwować i zamykać dowolną liczbę sesji z jednej aplikacji, ale tylko jedno urządzenie może łączyć się z sesją zdalnego renderowania naraz. Próby nawiązania połączenia z sesją przez inne urządzenia kończą się niepowodzeniem. Inne urządzenie może łączyć się tylko po zatrzymaniu sesji.

Ponieważ host renderowania zdalnego obsługuje tylko jedno urządzenie klienckie w danym momencie, klient połączony z sesją ma wyłączną kontrolę nad renderowaną zawartością. Połączenie pojedynczego klienta oznacza również, że wydajność renderowania nigdy nie różni się z powodów spoza kontroli.

Zatrzymywanie sesji

Sesja zostanie zatrzymana, gdy maksymalny czas dzierżawy wygaśnie lub ręcznie zatrzymasz sesję. Aby ręcznie zatrzymać sesję, możesz wywołać metodę RenderingSession.StopAsync. Sesja może również zostać zatrzymana z powodu niektórych awarii. Po zatrzymaniu sesji nie są już naliczane opłaty, a wszystkie poprzednie stany, takie jak załadowane modele, zostaną odrzucone.

Po zatrzymaniu sesji można wykonać zapytanie dotyczące identyfikatora trwałej sesji przy użyciu polecenia RenderingSession.SessionUuid(). Aplikacja może wywołać RemoteRenderingClient.OpenRenderingSessionAsync wywołanie za pomocą identyfikatora sesji, aby powiązać ją z sesją i buforować ją lokalnie.