ET框架部署

ET框架服务器端应用程序的发布

ET框架7.2使用目录结构提供的发布脚本进行发布: Publish-linux-x64.ps1

ET框架部署_第1张图片

使用VSCode打开 

ET框架部署_第2张图片

要确保项目编译成功没有报错 

点击此文件右键点击使用PowerShell运行

会在ET目录下生成Publish文件夹

如果发布在Windows系统下把  Publish-linux-x64.ps1  中linux全部改为win

ET框架部署_第3张图片

ET框架部署_第4张图片

购买阿里云服务器 

阿里云-计算,为了无法计算的价值

登录阿里云官网购买云服务器ECS

ET框架部署_第5张图片

 购买完后使用本地电脑远程连接云服务器

Win远程桌面部署

在本地电脑打开:远程桌面连接

ET框架部署_第6张图片

Windows服务器默认远程桌面连接的端口为:3389

如果云服务器拒绝访问则在安全组中开放端口访问权限

输入密码进行连接:

ET框架部署_第7张图片

 将ET框架下Publish文件夹下发布好的文件进行复制  ——  到远程桌面连接

ET框架部署_第8张图片

在远程桌面连接安装dotnet-sdk环境 

ET框架部署_第9张图片

 安装好后双击启动Server.exe

ET框架部署_第10张图片

ET框架部署_第11张图片

 修改Config中的起服配置就可以使外部的玩家访问游戏服务器了

修改配置

在ET框架代码中打开ConstValue静态类

namespace ET
{
    public static class ConstValue
    {
        public const string RouterHttpHost = "127.0.0.1";
        public const int RouterHttpPort = 30300;
        public const int SessionTimeoutTime = 30 * 1000;
    }
}

把RouterHttpHost改为云服务器的公网IP地址,RouterHttpPort改为云服务器开放的端口

ET框架部署_第12张图片

修改[email protected]配置文件

内网地址和外网地址对应云服务器的私网IP和公网IP

ET框架部署_第13张图片

重新发布应用程序上传远程桌面部署运行Server.exe

分布式多进程部署

[email protected]配置文件主要用于配置当前要在哪台机器上要启动几个游戏服务器进程,配置文件中所属机器Id字段代表[email protected]配置文件

ET框架部署_第14张图片

[email protected]配置文件中记录了在进程中所要创建的一个或多个Scene实体,其中所属区Id来自[email protected]配置文件中的Id

ET框架部署_第15张图片

[email protected]配置文件用于配置游戏有多少个游戏区服

ET框架部署_第16张图片

多进程配置 

 StartConfig文件下的目录代表ET框架在不同环境中的不同配置

ET框架部署_第17张图片

对Release(代表云服务配置)目录下的配置文件进行修改为多进程配置 

ET框架部署_第18张图片

ET框架部署_第19张图片

ET框架部署_第20张图片

守护监听进程 

作用:用于启动和拉取其他的游戏服务器进程,并且时刻监听其他游戏服务器进程是否处于存活的状态。如果某一个游戏服务器进程挂掉了,守护监听进程就可以监听到游戏进程的崩溃情况,及时给开发者发送邮件报告情况。

ET框架部署_第21张图片

启动监听进程 

ET框架部署_第22张图片

ET框架部署_第23张图片

 重新进行游戏服务器端的发布,复制win-x64到远程桌面


 运行多进程服务器

 在bin目录中按住Shift右键,点击在此处打开命令窗口

ET框架部署_第24张图片

 输入Server.exe --AppType=Watcher --StartConfig="StartConfig/Localhost"

ET框架部署_第25张图片

多台云服务器需要修改[email protected]配置文件 

ET框架部署_第26张图片


Linux云服务器的部署

先将云服务器的Win系统改为Linux系统

ET框架部署_第27张图片

ET框架部署_第28张图片

ET框架部署_第29张图片

ET框架部署_第30张图片

通过Xshell远程连接云服务器Linux系统 

ET框架部署_第31张图片

 发布ET框架的Linux版本

ET框架部署_第32张图片

 一步一步进入bin目录

ET框架部署_第33张图片

查看bin目录下文件

ET框架部署_第34张图片

ET框架部署_第35张图片

安装.NET环境 

在 CentOS Linux 上安装 .NET - .NET | Microsoft Learn

ET框架部署_第36张图片

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

sudo yum install dotnet-sdk-7.0 

sudo yum install dotnet-runtime-7.0

安装好后执行  ./Server  

验证Server的运行,新建一个连接执行Log日志文件

ET框架部署_第37张图片

编译寻路第三方C++库

ET框架部署_第38张图片

下载开源项目recastnavigation 

ET框架部署_第39张图片

 复制项目中所有的文件夹(是文件夹)到RecastDll文件夹下,然后将整个Libs文件夹放到Linux系统中

ET框架部署_第40张图片

ET框架部署_第41张图片

ET框架部署_第42张图片

 安装C  和  C++编译环境:yum -y install gcc gcc-c++ autoconf make

安装其他第三方库:yum install -y openssl openssl-devel

 执行cmake目录下的bootstrap文件

ET框架部署_第43张图片

 执行make命令

ET框架部署_第44张图片

 ET框架部署_第45张图片

ET框架部署_第46张图片

 编译第三方寻路库

ET框架部署_第47张图片

执行cmake编译源代码的命令 :cmake --build build_linux64 --config Release

编译发生报错 ,修改CMakeLists.txt文件: vim CMakeLists.txt

ET框架部署_第48张图片

重新执行编译命令:cmake --build build_linux64 --config Release  

编译完成

ET框架部署_第49张图片

把新生成的库文件libRecastDll.so 复制到  /root/linux-x64/Bin/

cp  libRecastDll.so  /root/linux-x64/Bin/

同时把  libRecastDll.so  复制到本地电脑中

ET框架部署_第50张图片

 执行游戏服务器端的应用程序

ET框架部署_第51张图片

 运行成功,但是关闭远程连接游戏服务器也随之关闭了

解决KCP报错问题

进入到Libs目录下的KCP文件

 输入编译命令: gcc -fPIC -shared ikcp.c -o libkcp.so

ET框架部署_第52张图片

将编译好的动态库文件复制到Bin目录下

执行  ./Server  命令解决报错 

云服务器安全组开放端口

ET框架部署_第53张图片

 解决断开连接游戏服务器就关闭问题

执行命令使游戏服务器断开连接在后台运行: nohup  ./Server >runtime.log 2>&1 &

日志输出会写入到runtime.log中

执行命令查看游戏服务器端有没有正确执行:ps aux | grep Server

ET框架部署_第54张图片

 随着时间的推移日志文件会越来越臃肿

ET6.0版本关闭游戏服务端对日志进行一个修改

ET框架部署_第55张图片

修改 NLog.config,然后重新上传

ET框架部署_第56张图片

ET框架部署_第57张图片 删除生成的runtime.log文件:rm -rf runtime.log

ET框架部署_第58张图片

在Log中查看日志文件

ET框架部署_第59张图片


解决此问题的第二个方法:模拟连接解决,安装一个我也不知道是什么的东西

ET框架部署_第60张图片

 安装好后在Bin目录下创建模拟连接: screen -S ET    (ET是自己起的名字)

ET框架部署_第61张图片

ET框架部署_第62张图片

 Ctrl  +  A  +  D退出模拟连接

查看是否被正确执行起来:

screen -ls  查看有哪些模拟连接        screen  -r  ET   重新回到ET模拟连接,

进入模拟连接后Ctrl +C关闭模拟连接,执行  exit  命令彻底退出模拟连接

ET框架部署_第63张图片

你可能感兴趣的:(游戏)