云电脑、云游戏 集群架构
云电脑、云游戏 集群架构

前言
最近在弄云电脑厂家的远程控制服务架构搭建
上面是云电脑一个架构图、公安系统的接入没有画, 其实是在中转服务上接入的。据说整机房建设10万台的机器,目前已经建设好了一万台机器、目前云服务架构挑战还是非常大的
难点:
- 低延迟 (100ms)
- 基本已经决定使用中转模式(后台可以进行用户登录录像储备功能)
- 并发量暂时支持一万台机器的转发的能力
一、云电脑整个系统服务
1、被控制端(win)
2、控制端(win/android/ios)
3、打洞服务器
4、媒体和鼠标转发服务
5、信令服务
6、设备管理服务
7、后台的监控桌面
二、被控端核心技术点
1、桌面采集技术(dxgi)
2、win系统音频采集
3、视频编码(H264/H265/AV1), 音频编码(opus)
4、视频编码硬件加速适配(NVIDIA、Intel)
5、鼠标和键盘事件透传(DataChannel)
6、网络传输技术采用RTC
7、P2p和媒体转发
8、鼠标事件和键盘(系统事件函数mouse_event/驱动/ViGEm技术)
9、显示器(驱动/displaydevice)
10、键盘、鼠标、游戏手柄的统一管理和信号转换,适配Xbox 360、DualShock 4等主流协议(inputtino/ViGEmClient)
11、服务管理(system/server/ui)
三、控制端
1、视频加速解码适配各个厂家显卡(nvidia、inter、AMD)
2、鼠标事件、键盘和文件的拷贝Hook系统事件(钩子)
3、文件传输(RTC中DataChannel通道)
四、打洞服务器
1、 RTC做公网映射提高p2p打洞成功率
五、信令服务
1、作为p2p的信令的协议交换的中转
六、媒体和鼠标转发服务
1、正常p2p打洞失败走媒体转发服务连接
2、后台设备查看被控制画面和鼠标事件
3、鼠标/键盘/文件传输(透传)
4、多用户同时连接控制同一台电脑
七、设备管理服务
1、管理设备(注册/登录)
2、用户管理
3、设备与用户关联
总结
项目使用到协议部分:https://github.com/chensongpoixs/libmedia_transfer_protocol