前言
何為協議生成器?其實就是前后端同學在對協議的時候使用的工具,手動添加對應的內容,最后一鍵發布自己需要的任何與協議有關的內容。
有人會說,我直接寫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文件
結語
工具介紹就這些,希望對有需求的人提供一定的幫助。關鍵還是思想,結合我微店里的網絡框架一起學習會更快速。
歡迎關注我的公眾號,獲取更多精彩內容。
歡迎掃碼關注公眾號《微笑游戲》,瀏覽更多內容。