切换深色模式
基本架构与概念
基本架构
null
ThingUE服务只有一个,其它部分都可以出现多个。浏览器和ThingUE实例之间的p2p连接,如果因为网络不通的原因无法建立则需要借助中继通讯
null
基本概念
ThingUE
是基于虚幻引擎开发的应用程序,一般我们得到的是经过打包编译后生成的包含各种程序和资源的一组文件结构,不需要云渲染的时候,直接运行其ThingUE.exe
即可启动。
ThingUE实例
即ThingUE的运行实例,是根据实例自身配置启动其对应的ThingUE程序文件产生的一组进程,在任务管理器中可以查看。值得一提的是,一个ThingUE可以启动多次产生多个实例,所以将ThingUE与实例的概念区分开。在云渲染中负责将每一帧画面流送出去的是实例的Streamer组件,因此当实例正在运行且Streamer连接上信令服务时,云渲染准备就绪。
ThingUE服务
是整个架构的核心,为其他各个组件提供服务,主要功能:
- 提供web服务,如管理控制台页面、实例访问页面
- 提供信令服务,控制虚幻引擎与浏览器之间建立WebRTC连接的通信流程、以及管理连接会话,在云渲染场景中,信令服务起着关键作用,帮助浏览器和虚幻引擎进行有效的通信协调。信令服务不传输像素流数据,但它管理着数据传输的流程和条件。
- 提供接口服务,提供各组件需要的接口,以及外部可以调用的http接口
- 内置一个实现了MQTT5.0标准的Broker组件,随服务以
MQTT over Websockets
的方式启动,使Web应用、ThingUE及其他第三方客户端之间可以基于发布订阅实时通讯
所有服务都通过同一个可配置的端口发布
Agent
是一种代理程序,因此不需要手动去启动ThingUE,而是让Agent以守护进程的方式在后台运行,通过此工具管理控制当前主机上ThingUE程序的运行。使用时要连接ThingUE服务,其主要作用有
- 提供实例配置管理的图形界面
- 程序化控制实例的启动停止、启动参数(如信令服务地址)
- 监控上报实例的进程状态以供服务端处理
- 收集实例运行日志,并上传服务端
- 在不同实例之间同步文件资源(可跨主机)
中继服务(STUN/TURN服务)
- STUN:用于为位于NAT内的设备找到自己的公网地址。WebRTC客户端通过给处于公网的STUN服务器发送请求来获得自己的公网地址信息,以及是否能够被(穿过路由器)访问。
- TURN:对于无法通过STUN服务器进行内网穿越的“对称型NAT”,我们可以借助TURN服务器作为中继服务器,通过TURN服务器对数据进行转发。
ThingUE启动器
包含了Agent
和ThingUE服务
的应用程序,启动器本身就作为Agent
使用,可以用来启动ThingUE
、ThingUE服务
并管理各组件之间的连接。其内置的ThingUE服务
功能,可以在一般场景下避免再去单独部署一个ThingUE服务
,简化部署工作流程。