Skip to content
导览

创建一个 Tesla 云渲染

云渲染实例

createCloud

初始化创建云渲染,传入初始化参数 CloudProps,返回一个云渲染实例 Cloud

html
<div id="cloudView" style="width:100vw;height:100vh;"></div>
<div id="cloudView" style="width:100vw;height:100vh;"></div>
js
import { createCloud } from 'xre_cloud'

const server = {
  address: 'http://***.***.***.***:****',
  appId: 'appId-****-****-****-****',
  token: 'token-****-****-****-****',
}

const cloud = createCloud({
  el: cloudView,
  server,
  loading: {
    show: true
  }
})
import { createCloud } from 'xre_cloud'

const server = {
  address: 'http://***.***.***.***:****',
  appId: 'appId-****-****-****-****',
  token: 'token-****-****-****-****',
}

const cloud = createCloud({
  el: cloudView,
  server,
  loading: {
    show: true
  }
})

关于云渲染后端服务地址

http://***.***.***.***:**** 对应一个云渲染的后端服务,请替换为您的应用对应的地址。

token 说明

TIP

客户端和服务端需要先约定好相关 appId 和对应的 key

appId: 规则为纯小写英文字符+数字。 总体长度不超过10位。(双方存储)

key: 规则为纯小写英文字符+数字,整体长度必须为16位。key应该妥善存放好,不能被泄露,不能暴露在前端代码中。(双方存储)

time: 规则为单位为秒的时间戳,10位。(双方各自获取各自时间)

token 的计算过程应当是业务系统后端计算完成,前端通过请求接口获取到后端计算好的 token

token 计算规则示例:

ts
const appId='ho';
const time = Date.now() / 1000 | 0;
const key = '9d8a121ce581499d';
const appIdMixed = appId + time + key;
// 按照 appId + time + key 的方式拼接后,进行md5操作
// md5(ho16595802059d8a121ce581499d)=db344bb65ffb45e4d4f8be0b0ff02950
// 最终得到32位纯小写的md5值
const sign = md5(
    appIdMixed,
);
// 将 time 和 sign 以 time_sign 方式作为token
const token = `${time}_${sign}`;
// 以上计算 token 的过程应当由业务系统后端完成,前端通过请求接口获取到计算好的 token。

// 那么在前端初始化的时候传递的参数应该为:
const server = {
  address: 'http://***.***.***.***:****',
  appId,
  token,
}
const appId='ho';
const time = Date.now() / 1000 | 0;
const key = '9d8a121ce581499d';
const appIdMixed = appId + time + key;
// 按照 appId + time + key 的方式拼接后,进行md5操作
// md5(ho16595802059d8a121ce581499d)=db344bb65ffb45e4d4f8be0b0ff02950
// 最终得到32位纯小写的md5值
const sign = md5(
    appIdMixed,
);
// 将 time 和 sign 以 time_sign 方式作为token
const token = `${time}_${sign}`;
// 以上计算 token 的过程应当由业务系统后端完成,前端通过请求接口获取到计算好的 token。

// 那么在前端初始化的时候传递的参数应该为:
const server = {
  address: 'http://***.***.***.***:****',
  appId,
  token,
}

Parameters

NameTypeDescription
propsCloudProps云渲染初始化参数。

Returns

Cloud

挂载云渲染

初始化云渲染如果传入 el 参数,则云渲染连接成功后会自动挂载到此 DOM 元素。 如果初始化云渲染没有传入 el 参数,则在云渲染连接成功后不会挂载。 此时可以通过调用 .mount() 手动挂载。 该方法接收一个容器参数,可以是一个实际的 DOM 元素或是一个 CSS id选择器字符串:

html
<div id="cloudView"></div>
<div id="cloudView"></div>
js
cloud.mount('#cloudView')
cloud.mount('#cloudView')
js
cloud.mount(cloudView)
cloud.mount(cloudView)

云渲染实例的内容将会被渲染在容器元素里面。

.mount() 方法应该始终在整个云渲染配置和资源注册完成后被调用。

多个云渲染实例

云渲染实例并不只限于一个。 createCloud API 允许你在同一个页面中创建多个共存的云渲染应用,而且每个云渲染都拥有自己的用于配置的作用域。

html
<div id="cloudView1"></div>
<div id="cloudView2"></div>
<div id="cloudView1"></div>
<div id="cloudView2"></div>
js
const cloud1 = createCloud({
  /* ... */
})
cloud1.mount(cloudView1)
cloud1.mount('#cloudView1')

const cloud2 = createCloud({
  /* ... */
})
cloud1.mount(cloudView2)
cloud2.mount('#cloudView2')
const cloud1 = createCloud({
  /* ... */
})
cloud1.mount(cloudView1)
cloud1.mount('#cloudView1')

const cloud2 = createCloud({
  /* ... */
})
cloud1.mount(cloudView2)
cloud2.mount('#cloudView2')

注意

每一个配置在初始化之后都对应开启一个云渲染实例,相同的配置对应同一个后端云渲染实例。