ET6框架(十)通讯消息编写

2024-08-31 12:52
文章标签 编写 框架 消息 通讯 et6

本文主要是介绍ET6框架(十)通讯消息编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 一、消息在的定义:
  • 二、客户端消息的发送:
  • 三、服务器消息的处理:
  • 四、查看结果


一、消息在的定义:

ET消息主要分为两类,一个种是普通消息,一种时通过Gate网关转发的消息叫Local消息
这里我们编写客户端与服务器端通讯消息
简单分为需要回复的消息和与不需要回复的消息:

有回复消息的请求需要:
1.使用ResponseType : 指定指定回复消息类型
2.在类型后使用 // IRequest 关键字指定请求消息
3.消息第一个参数必须为 int32 RpcId = 90;
4.消息回复类型需要使用 // IResponse 关键字指定为回复类型
5.消息回复的前三个类型必须指定为int32、int32、string 类型的 RpcId、Error、Message 数值为90、91、92三个数值

无回复消息:
1需要指定消息类型 使用 // IMessage 关键字在这里插入图片描述
在消息格式编写完后,需要点击ET > Proto 文件夹下的win_startProtoExport.bat文件
在这里插入图片描述

在以下地址却可查看生成的数据结构
在这里插入图片描述


二、客户端消息的发送:

我们打开Unity.Hotfix > Codes > Hotfix > Demo > Login > LoginHelper.cs
在这里插入图片描述

在脚本下编写内容:
我们新添加一个LoginTest方法,使用zoneScene.GetComponent.Creat创建会话得到session
然后通过会话调用Call方法调用需要回复的消息C2R_LoginTset.
关且通过会话调用Send方法调用不需要回复的消息C2R_SayHello()
在这里插入图片描述

我们来到UILoginConponentSystem.cs注释原有代码,并调编写调用LoginTest,如下:
在这里插入图片描述
我们打开Unity.Hotfix > Codes > Hotfix > Demo > Login 中创建 R2C_SayGoodByeHandle用于收服务端发来的R2C_SayGoodBye消息
需要注意的是需要添加[MessageHandle]标签,并指定AMHandle用于指定接受消息内容,与上面不同,此处可以获得到服服务端的会话Session
在这里插入图片描述


三、服务器消息的处理:

在 Server > Server.Hotfix > Demo > Login(自创建) > 中创建 C2R_LoginTestHandle.cs 脚本
在这里插入图片描述

需要注意的是服务器的消息处理类需要用Handle命名结尾,并需要打上[MessageHandle]标识为消息处理类
需要继承AMRpcHandle,并填写接收与返回的消息类型,这里的是异步函数所以需要使用async及await
当在方法中调用reply()方法时,服务器端将会把respones返回给客户端。
在这里插入图片描述

在同一目录下,创建脚本C2R_SayHelloHandle用于处理无需回复的消息,使其继承AMHandle,这使期可以接收到客户端发送的消息
接收到消息中可以同时拿到与客户端的回话,我们在这里调用Send将R2C_SayGoodBye发送至客户端
在这里插入图片描述


四、查看结果

在完成上面步骤后我们编译所有代码,然后运行服务器
在这里插入图片描述
然后运行回到Unity编辑器中,按F5编译资源,运行项目点击登录
在这里插入图片描述
在这里插入图片描述

这篇关于ET6框架(十)通讯消息编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123963

相关文章

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j