有奖:语音产品征文挑战赛火热进行中> HOT
无客户端模式是云渲染中一种特殊的连接模式,在该模式下,云渲染实例可以不依赖客户端进行会话创建、保活等操作。本章指南主要介绍了无客户端模式的使用方式。

无客户端实例的创建与销毁

在使用无客户端模式时,可以在无客户端交互的情况下,创建云渲染实例。整个流程以及实例生命周期的维护都由客户业务后台进行控制。

时序图



步骤说明

1. 业务后台通过云渲染 API 调用 ApplyConcurrent() 申请云渲染实例并发,云渲染应用后台收到请求后,如有空闲并发会锁定实例。
注意:
调用 ApplyConcurrent() 时指定的 UserId 将和申请到的实例相绑定,后续调用其他接口时,通过设置该 UserId 来指定对应无客户端实例。
2. 业务后台申请云渲染实例成功后,通过云渲染 API 调用 CreateSession() 接口,并将 RunMode 参数设置为RunWithoutClient,以无客户端模式启动该次会话。云渲染应用后台收到请求后将在对应实例上启动应用。
3. (可选)在以无客户端模式成功启动会话后,业务后台可以调用直播转推接口,将云上画面进行推流。
4. 当连接生命周期结束时,业务后台通过云渲染 API 调用 DestroySession() 接口,指定 UserId 销毁对应无客户端模式并发,云渲染应用后台收到请求后,会强制销毁并回收对应实例。
注意:
在使用无客户端模式时,云渲染实例的生命周期将完全由业务后台决定,云渲染应用后台不会自动回收并发。如不调用销毁会话的接口,云渲染实例将无期限的运行下去。在无客户端模式运行过程中,云渲染实例不会进行应用重启,版本更新,环境清理等维护性操作,故在接入无客户端模式时,业务后台一定要考虑实际生命周期,在合适的时机调用销毁接口使云端实例强制回收。

客户端连接无客户端实例

已创建无客户端实例的情况下,如有连接客户端交互的需求,可使用申请无客户端实例并发时使用的 UserId,让客户端连接至无客户端模式的云渲染实例进行交互。客户端连接行为不会影响无客户端实例的生命周期,实例的销毁仍依赖客户业务后台调用销毁接口,指定对应 UserId 来销毁指定无客户端实例。

时序图





步骤说明

1. 业务客户端通过指定创建无客户端实例时使用的 UserId 向业务后台请求连接,业务后台收到请求后通过云渲染 API 调用 CreateSession() 接口,将客户端信息填入对应参数,云渲染应用后台收到请求后返回 Server Session,业务后台再将对应 Server Session 返回给业务客户端,完成客户端连接。
注意:
使用客户端连接到无客户端模式实例时, CreateSession() 调用中的 RunMode 将会被忽略。
2. 关闭客户端的行为不会销毁云渲染实例,后续可以继续用对应 UserId 再次进行连接,且多次连接上的是同一个实例。要销毁对应实例仍依赖业务后台调用 DestroySession() 接口,传入对应 UserId 进行实例销毁。
注意:
无客户端模式下,云渲染实例不会进行应用重启、环境清理的操作,客户端连接到对应实例上时,将看到上一次连接退出时的应用状态。

适用场景

使用无客户端模式时,并发的生命周期完全由客户侧业务后台进行掌控,会增加一定的维护成本,主要适用于以下两种场景:
1. 云上应用存在自动化操作的能力,不需要客户端介入时,可以使用无客户端模式,此时需注意业务后台要主动调用销毁接口。
2. 当希望云上应用永不销毁,且应用能感知到客户端连接并自行进行相应状态清理维护工作,可以使用无客户端模式,后续在进行一些维护工作时集中进行连接重建。