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实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不