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

相关文章

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是