调度服务接入指南

接入方式:

  1. 获取调度服务的链接(部署后的地址),例如:服务部署在,http://10.18.165.2:8889/
  2. 配置调度服务host
  3. 设置要调度的集群tag,all或者空字符串代表所有集群机器均可调度
  4. 设置用户名和密码,不同的用户对应的连接权限不一样,主要表现在来最大连接数上,如果用户的权限只有1路,那么最大仅支持同时1路任务。
import {CloudRenderEngine} from '@baidu/cloudrenderengine';

// 配置调度服务host 必须
CloudRenderEngine.DispatchServer.host = 'http://10.18.165.2:8889';
// 设置要调度的集群tag 可选
CloudRenderEngine.DispatchServer.tag = 'online';

// 设置用户名和密码 可选,默认都是admin
Engine.CloudRenderEngine.DispatchServer.username='maptest';
Engine.CloudRenderEngine.DispatchServer.password='maptest';
  1. 获取可用项目列表,如果是确定的单个项目,无需这一步。

配置完host之后,可以通过DispatchServer.GetProjectCommon()获取可用的项目列表,会返回调度服务商所有可用项目的信息,其中name用于启动项目的projectName字段值。

const list = await Engine.CloudRenderEngine.DispatchServer.GetProjectCommon(); 

返回值如下:

 {"data": [
        {
            "name": "default",
            "title": "默认项目",
            "description": "用于展示API使用的项目, 主要结合示例中心使用。",
            "image": "xxxx.png"
        },...]}
  1. 获取当前tag集群可用渲染容量,可用渲染容量数大于0才可以连接
import {CloudRenderEngine} from '@baidu/cloudrenderengine';

CloudRenderEngine.DispatchServer.GetAllCapacity()
    .then(capacity => {
        if (capacity > 0) {
            // 可以连接了  
        }
    });
  1. 连接调度服务
// 更多参数参照 https://bj.bcebos.com/mapv-unreal/devDocuments/CloudRenderApp.html


const engine = new CloudRenderEngine({
    isShowTestUI: false,
    connectOnLoad: true,
    shouldShowPlayOverlay: false,
    // consul里配置的英文项目名称
    projectName: 'beijing',
});

const onSuccessed= message => {
    // 调度成功
}

const onLoadError= error => {
    // 调度失败,此处会给出具体原因,比如权限不足,可用调度容量不足,用户名或者密码错误,已达到该用户的最大连接数等。
}
// 渲染场景。调用3中的GetAllCapacity检查capacity大于0后才可以
engine.load(onSuccessed, onLoadError);

const handleEngineLoaded = () => {
    // 执行这个事件后代表资源加载完
    // 加载完成才可以使用engine的一系列方法
};

const disconnected = () => {
    // 服务连接异常时会回调此方法
};

engine.addEventListener('videoInitialised', handleEngineLoaded);
engine.addEventListener('signalingServerError', disconnected);