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

news2024/9/21 0:51:19

在这里插入图片描述

文章目录

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


一、消息在的定义:

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编译资源,运行项目点击登录
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【突发事件】Runway删库了,文章结尾有解决方法

最近,Runway 悄悄地从 Hugging Face 平台上删除了自己的代码库,其中包括备受瞩目的 Stable Diffusion v1.5 项目,这在科技界引起了轩然大波。 Runway 的行为不仅没有留下任何痕迹,也没有通知 Hugging Face 或任何社区成员。 更令人…

QEMU - user network

Documentation/Networking - QEMUQEMU/KVM中的网络虚拟化--Part2 User Networking | Xiaoye Zhengs blog (zxxyy.github.io)QEMU Network — ARM SoC Device Assignment Notes documentation (cwshu.github.io)slirp / libslirp GitLabGitHub - virtualsquare/libvdeslirp: li…

运用Premiere自学视频剪辑,这些岗位你能胜任!

随着短视频的兴起和火热,短视频后期制作越来越受到人们的重视,甚至衍生出很多岗位的高薪工作。如大家所了解的,Adobe premiere正是一款视频后期剪辑和制作工具,其功能强大,应用也十分广泛,是从事后期工作者…

【舞动生命,不缺营养!】亨廷顿舞蹈症患者的维生素秘籍✨

Hey小伙伴们~👋 在这个充满色彩的世界里,每个人都是独一无二的舞者,但对于患有亨廷顿舞蹈症的朋友来说,他们的舞蹈却多了几分挑战与不易。💪 今天,就让我带你一起揭秘,那些能够助力亨…

机器学习/数据分析案例---糖尿病预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 这是一篇数据分析/机器学习很好的入门案例,对糖尿病的影响进行预测和分析通过随机森林预测,平均准确率和召回率都不错不足&#x…

Photomator 3.3.22 (macOS Universal) - 照片编辑软件

Photomator 3.3.22 (macOS Universal) - 照片编辑软件 适用于 Mac、iPhone 和 iPad 的终极照片编辑器 请访问原文链接:https://sysin.org/blog/photomator/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Photoma…

美发店拓客营销预约到店连锁小程序拓展

传统印象里的10元美发店,在城市里已然升级为大店,服务多样化,价格也是几十元到几千元不等数个区间,除了单店外也有连锁品牌进行区域拓展,以量和品牌形象收获更多客户和自身的宣传等。 尤其是规模相对较大的门店&#…

AcWing 896. 最长上升子序列 II

学习视频↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 【E04 线性DP 最长上升子序列 二分优化】 O ( n l o g n ) O(nlogn) O(nlogn) #include<iostream> #include<algorithm> #define N 100010 using namespace std; int n; int a[N],q[N]; i…

【软件工程】软件工程

考点2 软件工程 一、定义 二、软件工程基本原理 三、软件工程方法学&#xff08;范型&#xff09; 题目 选择题

数字乡村振兴智慧农业整体规划建设方案

1. 项目建设需求 《数字乡村振兴智慧农业整体规划建设方案》旨在通过遥感、物联网等技术&#xff0c;实现土地资源监测、测土配方施肥、农产品销售分析、农资监管、物流配送监管、农业专家库、市场分析、产业链应用和金融服务。 2. 项目需求分析 项目需求覆盖生产、经营、监…

关于计算机网络原理问题

2017年12月07日星期四&#xff0c; 问题&#xff1a; 答案&#xff1a; 接下来&#xff0c;我们来分析和解答&#xff0c; 首先&#xff0c;你要知道&#xff0c;一个byte&#xff08;字节&#xff09;能表示两个十六进制数&#xff0c;那么四个字节就可以表示8个十六进制数…

Simulink代码生成:关系运算与逻辑运算

文章目录 1 引言2 模块使用实例2.1 关系运算2.2 关系运算 3 代码生成4 总结 1 引言 在Simulink中经常需要判断两个信号的大小关系、是否相等&#xff0c;或者判断布尔类型信号的与、或、非等。本文研究通过关系运算与逻辑运算模块实现上述需求。 2 模块使用实例 2.1 关系运算…

hello树先生——二叉搜索树

文章目录 一.搜索二叉树的性质二&#xff0c;功能函数接口1.二叉树的节点结构&#xff0c;分为左右指针和数据2.二叉树的插入函数3.删除接口4.中序遍历 三.测试项目 一.搜索二叉树的性质 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不…

uniapp scroll-view滚动触底加载 height高度自适应

背景&#xff1a; scroll-view组件是使用&#xff0c;官网说必须给一个高度height&#xff0c;否则无法滚动&#xff0c;所以刚开始设置了<scroll-view :style"height: 94vh" :scroll-y"true">设置了一个高度&#xff0c;想着vh应该挺合适的&#xf…

眼镜清洗机哪个品牌好?2024超声波清洗机推荐

眼镜作为日常生活不可或缺的配件&#xff0c;其卫生状况直接影响着我们的健康。日常简单的擦拭往往忽略了隐匿于镜片细微处的细菌群落&#xff0c;未彻底清洁的眼镜可能潜藏健康隐患。因此&#xff0c;深度清洁眼镜显得尤为关键&#xff0c;而超声波清洗机正是一种高效便捷的解…

探索《黑神话:悟空》背后的先进技术

黑神话&#xff1a;悟空》是一款备受期待的国产动作角色扮演游戏&#xff0c;凭借其令人惊叹的画面效果和极具深度的游戏玩法&#xff0c;吸引了全球玩家的目光。究竟是什么让这款游戏如此出色&#xff1f;让我们一起来探讨《黑神话&#xff1a;悟空》在开发过程中采用的几项尖…

java计算机毕设课设—固定资产管理系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; java计算机毕设课设—固定资产管理系统(附源码、文章、相关截图、部署视频) 获取资料方式在最下方 本系统主要用于高校中的“资产”进行管理。具体地讲&#xff0c;固定资产管理系统就是通过资产的增加、删除、查看、借出、归还、维修等一系列手段…

lvs-nat的https模式设置

前言&#xff1a;LVS工作模式分为NAT模式、TUN模式、以及DR模式。在lvs服务器上&#xff0c;设置虚拟ip并做负载均衡使用。使用LVS架设的服务器集群系统有三个部分组成&#xff1a;最前端的负载均衡层&#xff08;Loader Balancer&#xff09;&#xff0c;中间的服务器群组层&a…

NCH DrawPad Pro for Mac/Win:强大的图像编辑处理软件

NCH DrawPad Pro for Mac/Win是一款功能全面的图像编辑和设计软件&#xff0c;专为Mac和Windows用户设计。它不仅适用于专业设计师&#xff0c;也深受业余爱好者和创意工作者的喜爱。DrawPad Pro凭借其丰富的绘图工具、强大的编辑功能和便捷的模板库&#xff0c;为用户提供了卓…

书生大模型实战营基础(3)——LangGPT结构化提示词编写实践

目录 0、基础知识 1、准备 1.1环境配置 1.2创建项目路径 2、模型部署 2.1获取模型 2.2部署模型为OpenAI server 3.提示工程(Prompt Engineering) 3.1 什么是Prompt 3.2 什么是提示工程 3.3 提示设计框架 4、任务 4.1利用LangGPT优化提示词 0、基础知识 Prompt&…