前言
何为协议生成器?其实就是前后端同学在对协议的时候使用的工具,手动添加对应的内容,最后一键发布自己需要的任何与协议有关的内容。
有人会说,我直接写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文件
结语
工具介绍就这些,希望对有需求的人提供一定的帮助。关键还是思想,结合我微店里的网络框架一起学习会更快速。
欢迎关注我的公众号,获取更多精彩内容。
欢迎扫码关注公众号《微笑游戏》,浏览更多内容。