前言
ET偏向服务器端框架,可自行查看框架简介,了解框架具体有多强大,简单说明部署ET框架的步骤。
1.开发环境准备
博主使用5.0版本的,所以讲述下5.0版本预先要准备好的环境,打开Visual Studio Installer如下图进行操作:
以上就是C#开发环境的准备。
2.安装MongoDB
网上随便找个MongoDB安装包,按照正常流程安装即可,之后使用命令行启动数据库:
mongod -dbpath F:\MongoDB\Server\4.4\data
将执行命令保存成.bat文件,以后使用它启动数据库,具体路径根据数据库安装路径的data文件夹决定,然后打开浏览器输入以下地址,查看数据库服务是否正常启动。
http://localhost:27017/
接下来下载Robo3T可视化数据库操作工具,根据自己喜好是否安装,不喜欢命令行或不想记着命令的,建议下载后进行数据库的添加、删除、修改等等。
链接数据库后就可以进行相关操作了。
3.运行ET框架
不太熟悉Visaul studio的解决方案sln和同个解决方案中多个项目csproj的管理。可以先用起来,只需要知道项目服务端有个解决方案Server.sln,用vs打开这个解决文案后,会加载里面9个csproj项目。
最主要的是App.csproj、Hotfix.csproj、Model.csproj,其中启动项目是App.csproj,而App与Hotfix项目都引用了Model项目。只需要在Hotfix、Model项目里相应的目录中写代,然后编译运行起动项目就行了。
4.链接配置文件
讲解ET主要偏向服务器端,客户端可以通过修改Unity\Assets\Res\Config文件夹下的GlobalProto.txt改变链接地址。
ET是分布式服务器架构,有大量链接地址需要配置,通过修改Server\Config\StartConfig文件夹下的LocalAllServer.txt。
5.测试通信
ET客户端只是和服务器通信,没有GF框架强大,建议用GF框架代替ET客户端,讲解ET案例时会偏向服务器端的使用。当以上步骤完成后,忽略案例本身的通信逻辑,添加测试协议叫G2C_TestMessage,如下图所示:
修改路径Proto/HotfixMessage.proto的文件,然后点击Unity下的Tools/Proto2CS生成协议,对编码解码和PB协议不了解的,可以查看此篇文章了解原理。接下来在客户端的Init.cs添加以下代码段:
//添加指令与网络组件
Game.Scene.AddComponent<OpcodeTypeComponent>();
Game.Scene.AddComponent<NetOuterComponent>();
//测试发送给服务端一条文本消息
Session session = Game.Scene.GetComponent<NetOuterComponent>().Create(GlobalConfigComponent.Instance.GlobalProto.Address);
G2C_TestMessage g2CTestMessage = (G2C_TestMessage) await session.Call(new C2G_TestMessage() { Info = "==>>服务端收到请回答!" });
在服务器端创建C2G_TestMessageHandler脚本,接收客户端消息。
using ETModel;
namespace ETHotfix
{
[MessageHandler(AppType.Gate)]
public class C2G_TestMessageHandler : AMRpcHandler<C2G_TestMessage, G2C_TestMessage>
{
protected override async ETTask Run(Session session, C2G_TestMessage request, G2C_TestMessage response, Action reply)
{
response.Message = "客户端收到请回答!<<==";
reply();
}
}
}
到这里为止前后端通信基本就搞定了。