управление сеансами Удаленная отрисовка
Azure Удаленная отрисовка предоставляет REST API управления сеансами для управления взаимодействием с облачным сервером и запрашивать сведения о сеансах Удаленная отрисовка. В C# и C++можно создавать, обновлять и останавливать сеансы с помощью RemoteRenderingClient
и RenderingSession
классов. В этом уроке описывается управление Удаленная отрисовка сеансами.
Создание сеанса
Следующая команда запрашивает создание сеанса.
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" }
При создании нового сеанса используется maxLeaseTime
параметр для указания максимального времени аренды, как правило, в диапазоне от одного до восьми часов. Максимальное время аренды — это длительность, в течение которой узел принимает входные данные. При необходимости можно продлить срок аренды активного сеанса.
Ответ от запроса возвращает ответ sessionId
, который позволяет запрашивать сведения о сеансе. Этот UUID и некоторые основные сведения о сеансе сохраняются в течение 30 дней, поэтому вы можете запрашивать информацию даже после остановки сеанса.
Подключение к сеансу
Когда сеанс будет готов, клиентское устройство может подключиться к нему и отправить команды для загрузки и изменения моделей. Если RenderingSession.IsConnected
имеет значение true
, RenderingSession.Connection
возвращает экземпляр RenderingConnection
, который содержит функции для загрузки моделей, управления объектами и запроса сведений о визуализированной сцене.
Вы можете создавать, наблюдать и завершать работу столько сеансов, сколько требуется из одного приложения, но только одно устройство может подключаться к сеансу Удаленная отрисовка одновременно. Попытки подключения к сеансу другими устройствами завершаются ошибкой. Другое устройство может подключаться только после остановки сеанса.
Так как узел Удаленная отрисовка обслуживает только одно клиентское устройство одновременно, клиент, подключенный к сеансу, имеет монопольный контроль над отрисованным содержимым. Подключение к одному клиенту также означает, что производительность отрисовки никогда не зависит от причин за пределами вашего элемента управления.
Остановка сеанса
Сеанс останавливается, когда истекает максимальное время аренды или останавливается сеанс вручную. Чтобы остановить сеанс вручную, можно вызвать RenderingSession.StopAsync
. Сеанс также может остановиться из-за некоторого сбоя. После остановки сеанса счета больше не выставляются, а все предыдущие состояния, такие как загруженные модели, не карта.
После остановки сеанса можно запросить идентификатор постоянного сеанса с помощью RenderingSession.SessionUuid()
. Приложение может вызывать RemoteRenderingClient.OpenRenderingSessionAsync
идентификатор сеанса для привязки к нему и кэшировать его локально.