前言:可能是大佬都覺得簡單吧都沒有詳細的介紹(有介紹,可能是我太小白看不懂,哈哈哈),捉摸了一段時間把大佬們的文檔記錄下:
一、各服務器命名和作用(摘自:ET社區)
服務器名稱
Manager : 對服務器進程進行管理Realm : 登錄服務器 ( 驗證賬號密碼 相當於LoginServer 祖傳叫法,你想叫什么隨你)
- Gate : 網關服務器
- DB : 數據庫服務器
- Location : 位置服務器
- Map : 地圖服務器
- Client : 客戶端
- All Server: 所有服務器集合
各服務器的作用(摘錄自文檔ET框架筆記):
- Manager:連接客戶端的外網和連接內部服務器的內網,對服務器進程進行管理,自動檢測和啟動服務器進程。加載有內網組件NetInnerComponent,外網組件NetOuterComponent,服務器進程管理組件。自動啟動突然停止運行的服務器,保證此服務器管理的其它服務器崩潰后能及時自動啟動運行。
- Realm:對Actor消息進行管理(添加、移除、分發等),連接內網和外網,對內網服務器進程進行操作,隨機分配Gate服務器地址。內網組件NetInnerComponent,外網組件NetOuterComponent,Gate服務器隨機分發組件。客戶端登錄時連接的第一個服務器,也可稱為登錄服務器。
- Gate:對玩家進行管理,對Actor消息進行管理(添加、移除、分發等),連接內網和外網,對內網服務器進程進行操作,隨機分配Gate服務器地址,對Actor消息進程進行管理,對玩家ID登錄后的Key進行管理。加載有玩家管理組件PlayerComponent,管理登陸時聯網的Key組件GateSessionKeyComponent。
- Location:連接內網,服務器進程狀態集中管理(Actor消息IP管理服務器)。加載有內網組件NetInnerComponent,服務器消息處理狀態存儲組件LocationComponent。對客戶端的登錄信息進行驗證和客戶端登錄后連接的服務器,登錄后通過此服務器進行消息互動,也可稱為驗證服務器。
- Map:連接內網,對ActorMessage消息進行管理(添加、移除、分發等),對場景內現在活動物體存儲管理,對內網服務器進程進行操作,對Actor消息進程進行管理,對Actor消息進行管理(添加、移除、分發等),服務器幀率管理。服務器幀率管理組件ServerFrameComponent。
- AllServer:將以上服務器功能集中合並成一個服務器。另外增加DB連接組件DBComponent
- Benchmark:連接內網和測試服務器承受力。加載有內網組件NetInnerComponent,服務器承受力測試組件BenchmarkComponent。
二、設置配置文件

再命令行配置中設置各服務器的IP和端口信息,然后保存(有文檔說點啟動但是我點擊后沒有反應)
三、Program文件中按需求添加修改

三、批處理文件啟動各個服務器(demo中有各個批處理文件)
@echo off rd /q /s %cd%\Bin rd /q /s %cd%\Output cd %cd%/Server dotnet publish dotnet clean cd %cd%/../ del /a /f %cd%\Bin\Pathfinding.Ionic.Zip.Reduced.dll xcopy /y %cd%\Config\StartConfig\PCAllServer.txt %cd%\Bin\ xcopy /y %cd%\Config\graph.bytes %cd%\Bin\Config\ xcopy %cd%\Bin\*.* %cd%\Output\DB\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app1DB.bat %cd%\Output\DB\ start /D "%cd%\Output\DB" app1DB.bat xcopy %cd%\Bin\*.* %cd%\Output\Realm\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app2Realm.bat %cd%\Output\Realm\ start /D "%cd%\Output\Realm" app2Realm.bat xcopy %cd%\Bin\*.* %cd%\Output\Location\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app3Location.bat %cd%\Output\Location\ start /D "%cd%\Output\Location" app3Location.bat xcopy %cd%\Bin\*.* %cd%\Output\Gate1\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app4Gate1.bat %cd%\Output\Gate1\ start /D "%cd%\Output\Gate1" app4Gate1.bat xcopy %cd%\Bin\*.* %cd%\Output\Gate2\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app5Gate2.bat %cd%\Output\Gate2\ start /D "%cd%\Output\Gate2" app5Gate2.bat xcopy %cd%\Bin\*.* %cd%\Output\Map1\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app6Map1.bat %cd%\Output\Map1\ start /D "%cd%\Output\Map1" app6Map1.bat xcopy %cd%\Bin\*.* %cd%\Output\Map2\ /s /e /c /y /h /r copy /y %cd%\Server\Bats\app7Map2.bat %cd%\Output\Map2\ start /D "%cd%\Output\Map2" app7Map2.bat
啟動批處理文件
cd %cd%/publish dotnet App.dll --appId=1 --appType=DB --config=../PCAllServer.txt
各個服務器的啟動文件
