1. 程式人生 > >protobuf3.1.0 生成java檔案------多協議傳輸型別說明

protobuf3.1.0 生成java檔案------多協議傳輸型別說明

不瞭解protobuf的先去了解下

專案需要用protobuf進行資料傳輸所以最近找了找資料,下面給大家一些我的經驗下拉找到3.1.0的壓縮包protoc-3.1.0-win32.zip解壓到任意盤的根目錄,我的在C盤放著,然後配置環境變數右擊此電腦點選屬性》》高階系統設定》》環境變數》》點選系統變數的Path點選編輯新增  ;C:\protoc-3.1.0-win32\bin     點選確定開啟cmd執行   protoc --version配置完畢,下來開始編譯我在D盤建立了一個資料夾 用來編譯儲存生成的檔案然後再檔案下新建java資料夾接下來我們建立一個msg.protosyntax 必須要加上相應的版本,否則編譯會出錯v3版本貌似不需要新增屬性前面的欄位,加上之後編譯出錯好了,接下來我們開始編譯
點選目錄欄,輸入cmd如下圖接下來輸入命令編譯java檔案protoc.exe msg.proto --java_out=./可以看到msg的java檔案生成了,接下來我們說說netty中的應用大家應該都知道netty自己封裝的protobuf只能傳輸單一的資料型別如下圖只能解碼出LoginRequest的訊息,但是我們實際中肯定是多種協議,我們來定義一個proto檔案。

注意一下 列舉這塊enum,開始的第一個必須為0,不然編譯出錯,然後大家瞭解一下oneof這個欄位生成java檔案之後我們再進行netty的改造

這裡報錯是因為沒加包路徑加上就好了

客戶端傳送過來的是Pig資料,而服務端迴應的是一組人類的訊息。大概就是這樣吧如有不足請大佬們指教.