远程渲染会话管理

已完成

Azure 远程渲染提供会话管理 REST API,用于管理与云服务器的交互并查询有关远程渲染会话的信息。 在 C# 和 C++ 中,可以通过 RemoteRenderingClientRenderingSession 类创建、更新和停止会话。 本单元介绍如何管理远程渲染会话。

创建会话

以下命令用于请求创建会话。

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 参数指定最长租用时间,通常为 1 到 8 小时。 最长租用时间是主机接受输入的持续时间。 如有必要,可以延长活动会话的租用时间。

请求的响应将返回 sessionId,使你可以查询有关会话的信息。 此 UUID 以及有关会话的一些基本信息将保留 30 天,因此即使在会话停止后,也可以查询这些信息。

连接到会话

会话准备就绪后,客户端设备即可与之进行连接,并发送命令来加载和修改模型。 当 RenderingSession.IsConnectedtrue 时,RenderingSession.Connection 会返回 RenderingConnection 的一个实例,其包含的函数可用于加载模型、操作实体和查询已渲染场景的信息。

可以从单个应用程序创建、观察和关闭任意数量的会话,但一次只有一台设备可以连接到远程渲染会话。 尝试通过其他设备连接到会话失败。 另一台设备只能在会话停止后进行连接。

由于每台 Azure 远程渲染主机一次只为一个客户端设备提供服务,因此当客户端连接到会话时,它对渲染的内容具有独占控制权。 单一客户端连接还意味着渲染性能永远不会因为你无法控制的原因而发生变化。

停止会话

当最长租用时间过期或手动停止会话时,会话将停止。 要手动停止会话,可以调用 RenderingSession.StopAsync。 会话还可能因某些故障而停止。 会话停止后,你将不再需要为该服务付费,并且所有以前的状态(如已加载的模型)都将被丢弃。

会话停止后,可以使用 RenderingSession.SessionUuid() 查询持久会话 ID。 应用程序可以使用会话 ID 调用 RemoteRenderingClient.OpenRenderingSessionAsync 以绑定到该会话并将其缓存在本地。