ET框架-15 Actor消息的编写 以及 ET框架实战之前的准备工作

1.Actor消息的编写

我们编写一个Client到Map的一条消息

//IActorLocationRequest
代表这是一条由Client经过Gate网关进行转发到Map的Unit对象进行消息的处理和回复

在这里插入图片描述

// IActorLocationMessage
由于它是一条需要将经过Gate网关进行转发的一条消息,所以我们必须加上RpcId

Client到Map游戏服务器进程不需要回复的消息
在这里插入图片描述
Map游戏服务器上面的Unit对象发送到Client的消息
此时并不需要Location进行消息定位
因为我们Map游戏服务器上面的Unit对象已经保存了Client的信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 进入LoginHelper.cs编写代码

在这里插入图片描述
在13节我们自己创建了一个LoginTest的方法,取代了Login方法,现在我们要解开Login的注释,反而将LoginTest进行注释
在这里插入图片描述

3. 发送消息给服务端Map

打开M2M_UnitTransferRequestHandler
这个文件的逻辑
将Unit对象传送到Map游戏服务器上面的处理逻辑

在这里插入图片描述
1.我们拿到Gate网关发来的Unit(在14节介绍过,新的Demo登录流程的Unit映射关系创建是在Gate网关创建的)
2.我们通知客户端进行场景切换,并且创建客户端的新的客户端场景以及 Unit
在这里插入图片描述
3.我们创建客户端的 Unit
客户端的Unit在哪里创建的呢?在切换场景的时候,SceneChangeHelper创建新客户端场景的同时,进行Unit创建
在这里插入图片描述

4.现在我们客户端有Unit 同时Map服务器也有Unit,此时我们就可以进行Actor通信了,因为Actor通信在14节介绍过,必须有实体的InstanceId才能进行Actor通信

3.1 我们在SceneChangeHelper里面添加我们的Actor消息

此时我们创建了我们的客户端的Unit
我们用客户端的Session就可以发送Actor消息给Map服务器

在这里插入图片描述

4. 对消息进行处理

4.1我们创建对应的Handler处理需要返回的Actor消息

C2M_TestActorLocationRequestHandler
在这里插入图片描述
这里参数是Unit,可以理解为客户端的关系映射,我们所有的逻辑都要绑定在Unit上面来进行开发
在这里插入图片描述

4.2我们创建对应的Handler处理不需要返回的消息

C2M_TestActorLocationMessageHandler
在这里插入图片描述

4.3我们创建Handler处理服务器发往客户端的不需要返回的消息

在这里插入图片描述

在这里插入图片描述

5.运行测试

我们首先全部生成解决方法
在这里插入图片描述
然后BuildCode
在这里插入图片描述

启动服务器,运行Unity
在这里插入图片描述
然后运行Unity

6.结果分析

首先我们看客户端,
1.我们收到了来自服务器Map的Actor消息 是IActorLocationResponse消息
zone: 1 {“_t”:“M2C_TestActorLocationResponse”,“RpcId”:8,“Error”:0,“Message”:null,“Content”:“aaaaaaaa”}
我们输出Content

2.我们收到了来自服务器Map的Message消息 ,是 IActorMessage消息
zone: 1 {“_t”:“M2C_TestActorMessage”,“Content”:“bbbbbbbb”}
我们输出Content

在这里插入图片描述
我们现在看服务器
1.我们收到了客户端发来的Actor消息 是IActorLocationRequest 消息
zone: 0 { “_t” : “C2M_TestActorLocationRequest”, “RpcId” : 5, “Content” : “111111” }
我们输出Content
2.我们收到了客户端的Message消息,带有RpcId,是IActorLocationMessage消息
zone: 0 { “_t” : “C2M_TestActorLocationMessage”, “RpcId” : 7, “Content” : “222222222” }
我们输出Content
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_48781656/article/details/123771424