windows阿里云服务器UE5像素流公网部署

1,500 阅读3分钟

windows阿里云服务器UE5像素流公网部署第一步

服务器、硬件设备、node.js,测试时防火墙全部关闭,且登录服务器调试时开通所有端口,且开通tcp,udp协议,显卡是非常重要的可以现在服务器上运行,就知道是否支持

第二步

image.png 可能没有启动实列,可以自建一个启动实例.bat文件、并放入如下内容,或者对exe文件创建一个快捷方式

@echo off
start D:\YingJiApp\Windows\YingJiProject.exe -ResX=1920 -ResY=1080 -AudioMixer -PixelStreamingIP=41.103.95.113 -PixelStreamingPort=9999   -AllowPixelStreamingCommands -log -RenderOffScreen 

你需要修改你的像素流实例文件路径,以及公网IP及端口,然后运行启动实例.bat

第三步

image.png

在该文件夹下修改config.json

image.png 修改成公网IP

第四步

image.png 第四步运行Start_WithTURN_SignallingServer.ps1,这就打完收工了

第五步 如何判断turn服务器成功

可以使用telnet查看端口是否以开启,以及运行后看到如下结果,就会显示成功 telnet ip port

image.png

第六步

image.png 这样就可以公网访问了

  • 注意

  • 必须要开通udp协议

  • config.jsonStreamerPort与 启动实例.bat端口PixelStreamingPort要一致

第七步 运行Matchmaker

image.png

复制一下Matchmaker 文件夹,到目录,可以看到,其实是一个node服务,先运行setup.bat,然后再运行run.bat

image.png

matchmaker是用来做多实例部署的,里面的核心代码如下:

// 动态的获取可连接的信令服务,该服务其实是webSocket连接,可以根据需要动态的写接口
function getAvailableCirrusServer() {
	for (cirrusServer of cirrusServers.values()) {
		if (cirrusServer.numConnectedClients === 0 && cirrusServer.ready === true) {
			if (cirrusServer.hasOwnProperty('lastRedirect')) {
				if (((Date.now() - cirrusServer.lastRedirect) / 1000) < 10)
					continue;
			}
			cirrusServer.lastRedirect = Date.now();

			return cirrusServer;
		}
	}

	console.log('WARNING: No empty Cirrus servers are available');
	return undefined;
}
app.get('/url', (req, res) => {
		cirrusServer = getAvailableCirrusServer();
		if (cirrusServer != undefined) {
			// 地址重定向res.redirect(`http://${cirrusServer.address}:${cirrusServer.port}/`);
			res.json({code: 200, data: `${cirrusServer.address}:${cirrusServer.port}`, message: 'success'})
			console.log(`Redirect to ${cirrusServer.address}:${cirrusServer.port}`);
		} else {
			res.json({code: 200, data: '', message: '空'})
		}
	})

他其实就是进行了转发,或者说动态的获取可用的信令服务器接口

第八步 复制多份windows文件,如下Window2,Window3,Window4,Window5,Window6,并复制且修改启动实例2,3,4,5,6端口,如第二步。第三步一样修改端口,分别启动

image.png

  • 最终这就是多实例部署了,哦哦注意

image.png

这里要改为true

第九步 集群部署

上面的差不多多实例部署完成了,但是还差了一点,你的显卡如果是RTX系列的话,会发现,像素流应用最多只能部署四个,再多GPU利用率可能就挂了,这该怎么办呢,那么就要说到集群部署以及性能优化了,这个方法太核心了,等我心情好的时候再写吧

集群部署又分为两种方式

  1. 第一种:每一台服务器都是单独的实体都有一个Matchmaker服务,前端通过查询不同的matchmaker服务查找可用的像素流服务器
  2. 第二种:所有的服务器都是通过同一个Matchmaker服务进行一个中转,及所有config.json文件中MathchmakerPort字段与MatchmakerAddress字段一致,从而达到一个Matchmaker服务服务与多个像素流服务

1663119011856.png