Hantering av fjärrrenderingssessioner

Slutförd

Azure Remote Rendering tillhandahåller rest-API:et för sessionshantering för att hantera interaktioner med molnservern och fråga efter information om fjärrrenderingssessioner. I C# och C++kan du skapa, uppdatera och stoppa sessioner via klasserna RemoteRenderingClient och RenderingSession . I den här lektionen beskrivs hur du hanterar fjärrrenderingssessioner.

Skapa en session

Följande kommando begär skapande av en session.

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

När du skapar en ny session använder du parametern maxLeaseTime för att ange en maximal lånetid, vanligtvis inom intervallet en till åtta timmar. Den maximala lånetiden är den varaktighet under vilken värden accepterar indata. Du kan förlänga lånetiden för en aktiv session om det behövs.

Svaret från begäran returnerar en sessionId, som gör att du kan fråga efter information om sessionen. Detta UUID och viss grundläggande information om sessionen finns kvar i 30 dagar, så du kan fråga informationen även efter att sessionen har stoppats.

Ansluta till en session

När en session är klar kan en klientenhet ansluta till den och kan skicka kommandon för att läsa in och ändra modeller. När RenderingSession.IsConnected är trueRenderingSession.Connection returnerar en instans av RenderingConnection, som innehåller funktioner för att läsa in modeller, manipulera entiteter och fråga efter information om den renderade scenen.

Du kan skapa, observera och stänga av så många sessioner du vill från ett enda program, men bara en enhet kan ansluta till en fjärrrenderingssession i taget. Försök att ansluta till sessionen av andra enheter misslyckas. En annan enhet kan bara ansluta efter att sessionen har avslutats.

Eftersom en fjärrrenderingsvärd endast hanterar en klientenhet i taget har klienten som är ansluten till en session exklusiv kontroll över det renderade innehållet. Den enskilda klientanslutningen innebär också att återgivningens prestanda aldrig varierar av orsaker utanför din kontroll.

Stoppa en session

Sessionen stoppas när den maximala lånetiden går ut eller om du stoppar sessionen manuellt. Om du vill stoppa en session manuellt kan du anropa RenderingSession.StopAsync. Sessionen kan också stoppas på grund av ett fel. När sessionen har stoppats debiteras du inte längre och alla tidigare tillstånd, till exempel inlästa modeller, tas bort.

När en session har stannat kan du fråga det beständiga sessions-ID:t med hjälp RenderingSession.SessionUuid()av . Ett program kan anropa RemoteRenderingClient.OpenRenderingSessionAsync med sessions-ID:t för att binda till den sessionen och cachelagra den lokalt.