Správa relací vzdáleného vykreslování
Azure Remote Rendering poskytuje rozhraní REST API pro správu relací ke správě interakcí s cloudovým serverem a dotazování informací o relacích vzdáleného vykreslování. V jazyce C# a C++ můžete vytvářet, aktualizovat a zastavovat relace prostřednictvím tříd RemoteRenderingClient
a RenderingSession
tříd. Tato lekce popisuje, jak spravovat relace vzdáleného vykreslování.
Vytvoření relace
Vytvoření relace vyžaduje následující příkaz.
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" }
Při vytváření nové relace použijete maxLeaseTime
parametr k určení maximální doby zapůjčení, obvykle v rozsahu od 1 do osmi hodin. Maximální doba zapůjčení je doba trvání, během které hostitel přijímá vstup. V případě potřeby můžete prodloužit dobu zapůjčení aktivní relace.
Odpověď z požadavku vrátí sessionId
odpověď, která umožňuje dotazovat se na informace o relaci. Toto UUID a některé základní informace o relaci se uchovávají po dobu 30 dnů, takže se můžete dotazovat na informace i po zastavení relace.
Připojení k relaci
Jakmile je relace připravená, klientské zařízení se k ní může připojit a může odesílat příkazy pro načtení a úpravy modelů. Když RenderingSession.IsConnected
je true
, RenderingSession.Connection
vrátí instanci RenderingConnection
, která obsahuje funkce pro načtení modelů, manipulovat s entitami a dotazovat informace o vykreslené scéně.
V jedné aplikaci můžete vytvářet, sledovat a vypínat tolik relací, kolik potřebujete, ale současně se k relaci vzdáleného vykreslování může připojit jenom jedno zařízení. Pokusy o připojení k relaci jinými zařízeními selžou. Jiné zařízení se může připojit až po zastavení relace.
Vzhledem k tomu, že hostitel vzdáleného vykreslování obsluhuje současně pouze jedno klientské zařízení, má klient připojený k relaci výhradní kontrolu nad vykreslovaným obsahem. Jediné připojení klienta také znamená, že výkon vykreslování se nikdy nes různí z důvodů mimo vaši kontrolu.
Zastavení relace
Relace se zastaví, když vyprší maximální doba zapůjčení nebo relaci zastavíte ručně. Pokud chcete relaci zastavit ručně, můžete volat RenderingSession.StopAsync
. Relace se může také zastavit kvůli nějaké chybě. Jakmile se relace zastaví, už se vám nic neúčtuje a všechny předchozí stavy, jako jsou načtené modely, se zahodí.
Po zastavení relace můžete pomocí příkazu RenderingSession.SessionUuid()
. Aplikace může volat RemoteRenderingClient.OpenRenderingSessionAsync
s ID relace a svázat ji s danou relací a uložit ji místně do mezipaměti.