〔005〕虚幻 UE5 像素流多用户部署

✨ 目录

    • [▷ 为什么要部署多用户](#▷ 为什么要部署多用户)
    • [▷ 开启分发服务器](#▷ 开启分发服务器)
    • [▷ 配置启动多个信令服务器](#▷ 配置启动多个信令服务器)
    • [▷ 配置启动客户端](#▷ 配置启动客户端)
    • [▷ 多用户启动整体流程和预览](#▷ 多用户启动整体流程和预览)
    • [▷ 注意事项](#▷ 注意事项)

▷ 为什么要部署多用户

  • 之前的像素流部署,属于单用户,是有很大的弊端的
  • 打开多个窗口访问,可以看到当一个用户操作界面的时候,另一个界面也会相应变化,这在实际项目中,多人访问同一个项目肯定是不妥的

▷ 开启分发服务器

  • 由于要部署多用户,就要通过一个分发服务器去分发用户的请求
  • 先打开 Matchmaker/config.json 文件,讲分发的接口统一调整成为 80
  • 然后进入 platform_scripts/cmd/ 文件夹下,点击 run.bat 启动分发服务器
json 复制代码
{
	"HttpPort": 80,
	"UseHTTPS": false,
	"MatchmakerPort": 9999,
	"LogToFile": true,
	"EnableWebserver": true
}

▷ 配置启动多个信令服务器

  • 如果想多少个用户同时访问,就复制多少个信令服务器 SignallingWebServer 的包
  • 然后进入各自包中,打开配置文件 config.json 对各个信令服务器进行配置,只需要配置以下 4项 即可
  • UseMatchmaker: 是否使用分发,这里要设置为 true,用于多用户访问时自动分配
  • HttpPort: 用户在浏览器通过该端口进行访问像素流
  • StreamerPort: 像素流向外流送的端口
  • SFUPort: 转发器接口,由一个服务器和多个终端组成,收到像素流后,通过该端口转发给用户客户端,所以必须唯一,理论上可以分配 65536 个端口,但是由于其他很多端口被各种特殊软件使用,实际上能配置的端口远远小于该值
  • 最后进入各个信令服务器文件夹的 platform_scripts/cmd 下,双击 run_local.bat 启动即可
json 复制代码
// 信令服务器1
{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "",
	"MatchmakerPort": 9999,
	"PublicIp": "localhost",
	"HttpPort": 81,
	"HttpsPort": 443,
	"StreamerPort": 881,
	"SFUPort": 8881,
	"MaxPlayerCount": -1
}
// 信令服务器2
{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "",
	"MatchmakerPort": 9999,
	"PublicIp": "localhost",
	"HttpPort": 82,
	"HttpsPort": 443,
	"StreamerPort": 882,
	"SFUPort": 8882,
	"MaxPlayerCount": -1
}

▷ 配置启动客户端

  • 复制多个快捷方式,在属性中添加 -PixelStreamingIP=localhost -PixelStreamingPort=881 -log -RenderOffScreen
  • 修改其中的 PixelStreamingPort 参数与信令服务器中对应即可
  • 然后双击启动多个客户端即可

▷ 多用户启动整体流程和预览

  • 第一步: 需要在 Matchmaker\platform_scripts\cmd 中开启分发服务器
  • 第二步: 需要开启多个信令服务器,需要在每个信令服务器的 platform_scripts\cmd 下单独开启
  • 第三步: 开启多个客户端
  • 第四步: 直接在浏览器中输入 http://127.0.0.1/ 即可,由于在第一步中配置了入口都是80端口,所以访问 http://127.0.0.1/ 后会自动帮你分配到 81 或 82
  • 效果: 可以看到操作其中一个窗口,另一个窗口并不会随之运动,并且两者的浏览器端口不一样

▷ 注意事项

  • 由于部署多用户,需要开启多个信令服务器和多个其他服务,因此及耗服务器的配置,这也是为什么很多大型游戏都分区运行,其实每个区都是一个服务器甚至是一个服务器集群,但是每个区能注册的用户也是有限制的,所以才会有服务器爆满这种说法
  • 如果用户超过了信令服务器的总数,用户将一直进入不了页面,直到有人下线,将该信令服务器闲置出来后才可以进入,所以需要前端做好用户的限制和提示等
  • 在linux中部署的时候,只需要将在服务器上部署多个信令服务器即可,客户端是用户自己下载到本机运行的。就相当于王者荣耀,需要先下载王者荣耀客户端一样,进入游戏的服务才是服务器提供的
相关推荐
魔士于安24 分钟前
经典Game
游戏·游戏引擎·贴图·技术美术·模型
淡海水27 分钟前
01-04-认知篇-Unity内存全景
unity·c#·游戏引擎·.net·gc
上海广测检测科技有限公司1 小时前
交换机CRA网络安全合规详解:从附件I安全要求到EN 18031与CRA叠加测试
经验分享
璞致电子2 小时前
基于 P201Pro | 接收端基础知识——Costas环锁定后为何仍会错?DQPSK与前导码相位校正(6)
经验分享·fpga开发·ad9361·软件无线电·sdr·qpsk·pzsdr
598866753@qq.com10 小时前
Codex与Unity
unity·游戏引擎
上海广测检测科技有限公司10 小时前
欧盟NIS2指令对中国制造商的供应链合规传导:判定边界与Article 21十条措施解读
经验分享
璞致电子11 小时前
基于 P201Pro 的 QPSK 无线收发|接收端基础知识 (2):从混乱星座到 QPSK 点簇,Costas‑Loop 载波同步 GNU Radio 实测
经验分享
淡海水11 小时前
01-03-认知篇-C#内存模型深度解析
unity·c#·游戏引擎·.net·gc
by2099913 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
by2099915 小时前
从 malloc/free 到 new/delete:真正理解 C++ 中的内存管理与对象生命周期
c语言·c++·经验分享·动态内存管理