教育团结组织使用工程资源(Unity Sproto)天网与天网框架的服务端连接,

      最后更新:2021-10-11 22:13:03 手机定位技术交流文章

      文章目录

          • 一、前言
          • 二. 天网服务器建造
          • 三. 团结客户
            • 1. 统一项目
            • 2、导入开源项目
              • 第二层,第二层,第二层,第二层,第二层,第二层,开放源源开放项目
              • 二楼二楼二楼二楼二楼二楼二楼二楼二楼开放源码项目
              • 二楼二楼二楼二楼三楼二楼开放源码项目
            • 3. Scproto 协议文件已准备就绪 。
              • 这是我一生中第一次见到一个女人。 1。 服务终端协议的文件:Proto.Lua。
              • 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,
            • 4. 客户。Script 从程序程序文件转换为 C#
              • 4.1、安装lua
              • 本篇文章是我们特别报导埃及2011年抗议活动的部分内容。 Protodump工具:建立原生文件的C#脚本。
            • 5. 连接客户的服务
          • 四. 与客户和服务提供者的沟通
            • 1. c2s是客户与服务器的通信。
              • 1.1、客户端部分
              • 1.2、服务端部分
              • 1.3、运行测试
            • 2. s2c 给客户端的服务端消息
              • 2.1、服务端部分
              • 2.2、客户端部分
              • 2.3、运行测试
          • 五、工程源码
          • 五、完毕

      一、前言

      大家好 我是新来的
      最近在搞服务端Skynet今天我想写它,框架。Unity通过sproto协议与Skynet下图说明服务终端通信过程:
      在这里插入图片描述
      别闹了,我们开始派对吧

      二. 天网服务器建造

      关于搭建Skynet作为公共服务部门,我为头两篇文章制定了课程,建议我首先读一读:
      实际操作培训,教育你们如何从头开始管理天网,包括个案工作(服务端天网Ubuntu)。
      手牵手演示如何在 Windows 上操作天网, 无需虚拟机器( WSL Linux Ubuntu Skynet VScode) 。
      我不会破坏它,我要创造一个环境,开始运行。Skynet,效果如下:
      在这里插入图片描述
      服务端模块的结构如下:
      在这里插入图片描述

      三. 团结客户

      1. 统一项目

      我使用的Unity版本为Unity 2021.1.7f1c1因为我只是在这里展示客户和服务器sproto没有必要通过议定书来文程序。3D因为这是关于功能, 我在做一个。2D这是一个标准项目,叫做项目UnitySprotoDemo,如下:
      在这里插入图片描述

      2、导入开源项目

      我们要在Unity中使用sproto这是通讯协议,是一套协议的一部分sproto协议的C#这是成就和工具的首选GitHub寻找适当的公开来源材料,以尽量减少不必要的车轮重复。
      关于GitHub 我已经制定了一个课程, 有兴趣的学生可以阅读: GitHub 使用课程和共同问题解决方案- 将本地项目上传到 GitHub 仓库。

      我找到了一套可以在Unity中使用的sprotoC#我们先从工具开始Unity工程的Assets文件夹中新建一个sproto文件夹,用于存放从GitHub中下载下来的sproto开源项目,
      在这里插入图片描述

      第二层,第二层,第二层,第二层,第二层,第二层,开放源源开放项目

      GitHub com/lvzixun/sproto-charp。
      sproto-Csharpsproto的纯C#实现。
      让我们下载并保存它。Assets/Sproto/sproto-Csharp文件夹中,如下:
      在这里插入图片描述
      下面是我们可以删除的一些测试代码:
      在这里插入图片描述

      二楼二楼二楼二楼二楼二楼二楼二楼二楼开放源码项目

      GitHub org/lvzixun/sprotodump。
      sprotodump是将.sproto文件转为.cs.spb.spb.go.md.lua当我们得到工具,我会解释如何使用它。
      让我们下载并保存它。Assets/Sproto/sprotodump文件夹中,如下:
      在这里插入图片描述

      二楼二楼二楼二楼三楼二楼开放源码项目

      GitHub com/m2q1n9/sproto-Unity.com/m2q1n9sproto-Unity.com/m2q1n9sproto-Unity.com/m2q1n9sproto-Unity.com/m2q1n9sproto-Unity.m2q9sproto-Unity.com/m2q1n9sproto-Unity.
      sproto-Unity封装了三个类:NetCoreNetSenderNetReceiver那我以后再研究一下怎么用它
      让我们下载并保存它。Assets/Sproto/sproto-Unity文件夹中,如下:
      在这里插入图片描述
      此时工程会报错,
      在这里插入图片描述
      我们刚刚取走了它 所以它就不见了sproto-Csharp这儿有密码,别担心,我们晚点再谈.sproto生成cs就自动解决了。

      3. Scproto 协议文件已准备就绪 。

      今天,我们写下协议文件,其中包括服务和客户信息。

      这是我一生中第一次见到一个女人。 1。 服务终端协议的文件:Proto.Lua。

      skynet框架中的examples我们准备了一份协议文件,李:proto.lua
      在这里插入图片描述
      让我们改变并消除不受欢迎的协议, 我们将结束这样的事情:

      注:由于客户端的sproto工具的不能支持c2ss2c的协议使用相同的tag,比如sayhello消息的tag1,那么heartbeat消息就不可以使用1作为tag,这里我是使用2作为heartbeattag

      不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,

      我们在Unity工程的Assets/Sproto目录有新文件夹 。protocol为了保存议定书文件,
      在这里插入图片描述
      protocol文件夹中新建一个game.proto文件,内容如下:

      4. 客户。Script 从程序程序文件转换为 C#

      接下来,我们要使用sprotodump将客户端的game.proto文件转成C#脚本。
      因为sprotodump需要是用lua因此,我们必须首先安装在这里。lua环境。

      4.1、安装lua

      lua 官方网络:这是我们特别报导全球之声网络的一部分。
      Windows 的 Lua 版本版本 : https://github.com/rjpcomputing/luaforwindows/releases
      在这里插入图片描述
      我们得到它并安装它。它完成后,打开终端并执行。lua -v如果您能提供版本号,请提供版本号。lua环境弄好了。
      在这里插入图片描述

      本篇文章是我们特别报导埃及2011年抗议活动的部分内容。 Protodump工具:建立原生文件的C#脚本。

      sprotodump是将.sproto文件转为.cs.spb.spb.go.md.lua我们会一直等文件到来game.proto文件转成C#脚本。
      sprotodump的使用方法如下:

      例:

      我们把命令写到bat在脚本中,双击执行足以提高工作效率。
      Assets/Sproto/protocol目录中创建gen_cs.bat文件,再创建一个gen_cs存储生成数据的文件夹C#脚本。
      在这里插入图片描述
      gen_cs.bat剧本如下,我写了一份全面的说明,你应该可以阅读。

      我们执行gen_cs.bat脚本中的错误可能是可能的 :
      在这里插入图片描述
      我们打开sprotodump.lua脚本,把README后面的[[]]改成[=[]=]即可,
      在这里插入图片描述
      如下:
      在这里插入图片描述
      重新执行gen_cs.bat脚本,
      在这里插入图片描述
      生成成功,可以看到gen_cs文件夹中生成了gamesproto.cs脚本,
      在这里插入图片描述

      5. 连接客户的服务

      我们先新建一个Scripts用于存储我们创建的游戏逻辑脚本的文件夹,
      在这里插入图片描述
      Scripts文件夹中创建一个Main.cs以条目脚本的形式Start该方法进行某些初始化,并且Update中驱动NetCore的消息分发,

      因为服务器是本地的, 我们可以连接到它。IP地址使用127.0.0.1因此,港口,如果我们能看到 服务监听港口是...8888
      在这里插入图片描述
      以下是客户连接服务代码:

      我们把Main.cs脚本挂到Main Camera上,
      在这里插入图片描述

      运行Unity,可以看到输出了connect result: True它表明与服务器的连接成功 。
      在这里插入图片描述
      服务器也在此阶段导出所需的日志 。
      在这里插入图片描述

      四. 与客户和服务提供者的沟通

      1. c2s是客户与服务器的通信。

      1.1、客户端部分

      让我们让客户 发送一个服务现在。sayhello消息,

      1.2、服务端部分

      我们给服务端的agent.lua脚本添加sayhello的响应,

      如下:
      在这里插入图片描述

      1.3、运行测试

      服务器重新启动, 客户端启动。 客户端的调度为可见 。sayhello信息, 服务供应商还回了信,
      在这里插入图片描述
      我们正在检查服务日志并出口这些日志 显示我们收到了客户的通信
      在这里插入图片描述

      2. s2c 给客户端的服务端消息

      服务端每隔5秒给客户端发送一条heartbeat以下是电文的定义:

      2.1、服务端部分

      当服务器与客户端连接时,它每次都循环。5秒给客户端发送一条heartbeat消息。

      在这里插入图片描述

      注意:因为heartbeat由于信件不包含参数, 这里没有其他参数可以传递 。heartbeat电文定义包括诸如此等参数。

      那么发消息时传cnt参数是这样子的:

      2.2、客户端部分

      客户端部分需要通过NetReceiver所登记的电文响应功能如下:

      2.3、运行测试

      服务器已重新启动, 客户端已启动 。 我们可以看到客户从服务获得信息 。heartbeat消息了,
      在这里插入图片描述

      五、工程源码

      我正在上传此项目源到CODE CHINA有兴趣下载自己研究成果的学生可通过以下方式下载:
      https://codechina.csdn.net/linxinfa/UnitySprotoDemo
      在这里插入图片描述

      五、完毕

      让我们开始吧,关于这个SkynetSproto还有很多事情要做,这只是个开始 我希望这对新人有用
      我是Lin Xinhai,这篇文章是我们全球之声在线特别报导的一部分。对不起,Csdn。
      这不是一个容易的任务。 请具体说明您在哪里得到它, 如果您重新出版它。 非常感谢 。
      如有任何技术问题,请留言或寄送私人邮件。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/11601.html

          热门文章

          文章分类