Skip to content

消息同步

为什么要消息同步

云桥渲染平台在使用时,由于客户端在访问同一个系统页面时,加载的云渲染服务地址不同,为了将不同客户端中的场景、物联网状态、功能效果做到步调统一,需要一套消息同步中心服务,来将两个至多个客户端的操作同步起来,因此平台提供了一套消息同步服务。

怎么实现消息同步

通过平台提供的消息同步服务,多个客户端在访问系统时,会将各自的执行传输到消息中心,消息中心会分析判断,将消息广播给其他客户端,并在客户端执行相关的指令,即完成消息同步能力。

使用方式

在查看接口文档时,大家应该能看到,很多接口在最后一个传参,叫做sync,这个参数默认false,如果传true,并且开启了消息同步,则会将多个客户端的消息、状态同步起来。

以下为简单示例,来展示消息同步:

注意

客户端一和客户端二中的server地址虽然不一样,但是他们是同一个渲染场景

客户端一

js
const kapi = await KAPI.build('Your Auth Token')
const options = {
  server: 'Service URL 1',
  sync: true,
  syncServer: 'Sync Service URL',
  syncClientId: '20230830-1'
}
const scene = new kapi.Scene('kapi-container', options)
console.log(scene)

客户端二

js
const kapi = await KAPI.build('Your Auth Token')
const options = {
  server: 'Service URL 2',
  sync: true,
  syncServer: 'Sync Service URL',
  syncClientId: '20230830-2'
}
const scene = new kapi.Scene('kapi-container', options)
console.log(scene)

消息中心

消息中心会接收到”客户端一“和”客户端二“连接到消息中心的消息,并将后续的带有同步指令的在该客户端执行。

功能同步示例

1、比如在”客户端一“执行了同步能力的飞行功能:

js
const camera = new kapi.Camera()
const postion = {
  x: 108020.0,
  y: -129000.0,
  z: -8240.0,
  rotation: {
    roll: 0,
    pitch: 0,
    yaw: -120.000153
  }
}
const camearInfo = await camera.flyTo(postion, 1.5, true)
console.log(camearInfo)

2、消息中心接收到”客户端一“的同步指令,并将指令广播到除”客户端一“的客户端群中,比如”客户端二“收到消息中心的同步指令,也会同样执行飞行动作。

试用

如果您有消息同步、场景同步、物联状态同步的需求,请点击试用一下吧

消息同步 has loaded