Egret社区

协议生成器工具

2020-6-16 19:29
950
前言
何为协议生成器?其实就是前后端同学在对协议的时候使用的工具,手动添加对应的内容,最后一键发布自己需要的任何与协议有关的内容。 有人会说,我直接写proto文件用它的命令行也可以生成很多文件的。不过proto本身的能力,我工具都可以使用,因为本身工具就可以调用proto。下面开始介绍一下这款附带源码的工具 良心价格,买来不一定要用,但是你可以拿来学习这种思想;用什么语言开并不重要,重要的还是思想;编程编的就是思想,就跟写文章一样。
介绍
  • 文件功能
  • 定义服务 可能我门一款游戏用到好几个服务,比如登陆服务,大厅获得道具服务,战斗服务。对于棋牌游戏或者联网对战游戏尤其如此。而这些服务器有的是长连接,有的是短链接,有的是proto格式,有的是json格式。在这个工具里都是可以设置的。
  • 定义协议号 我们用socket做游戏的一般定义格式的时候都是协议号+数据长度+数据段。这个很正常,当然http也是可以这样定义的。比如http://xxx.xxx.com:80/classname/functionname?xxx=cc&xx=xx ip+端口,这个跟socket是一样的。端口之后和问号之前的就可以定义为协议号了,也就是资源路径。这样就可以长短链接使用同样的处理方式。
  • 定义模块 我个人喜欢将不同的功能分为不同的模块。然后在模块中定义消息。
  • 定义消息格式 比如这个商店模块,在进入商店时需要给服务器发送获取商品列表的消息。而服务器需要两个字段。并设置了类型。而工具是支持注释的,CNName就是了。有请求格式,自然也有返回格式,所以有GetProductInfoResult,并定义了返回的消息格式。
  • 使用 xxxHandler代表了一个请求处理。一个处理会有请求消息,响应消息。所以将刚才定义的两个消息格式,设置到request和response中就可以了。
导出
xml目录为项目配置文件,export为导出内容目录
导出的文档
导出proto的java类
使用lua脚本解析xml文件
结语
工具介绍就这些,希望对有需求的人提供一定的帮助。关键还是思想,结合我微店里的网络框架一起学习会更快速。 欢迎关注我的公众号,获取更多精彩内容。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

游子陈

登堂入室

积分: 13 帖子: 2 精华: 0

楼主热帖

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部