一種跨平臺通訊協議代碼的轉換方法及其系統的制作方法
【技術領域】
[0001] 本發明設及一種即時通訊技術領域的方法和系統,具體講設及一種跨平臺通訊協 議代碼的轉換方法及其系統。
【背景技術】
[0002] 通訊協議為兩個節點間交換信息的載體,目前序列化協議有非常多的選擇,但需 要各個語言或各平臺各自實現編解碼和回調分發,每次更新協議都需要各個語言或者平臺 修改編解碼和解析的代碼,費時費力,且對人員的穩定要求較高,二次開發成本較高,流程 復雜。
[0003] 例如:protobuf協議使用java語言實現發送的方法包括W下步驟:
[0004] 1、生成protobuf協議中定義的消息對象;2、將消息對象序列化成二進制數據;3、 將數據實體通過約定好的編碼規范封包;4、通過SOket發送數據包。 陽0化]protobuf協議使用java語言實現的方法包括W下步驟:
[0006] 1、接收到數據開始組包;2、組包完成后開始解碼;3、根據解碼后的信令反序列化 數據實體;4、返回protobuf消息對象。
[0007] 結合上述例子可W發現,現有技術中通訊協議生成的方法存在W下問題弊端:
[0008] 1、需要編寫針對特定協議的序列化和反序列化代碼;
[0009] 2、更新協議后需要修改編解碼模塊; 陽010] 3、二次開發成本較高;
[0011] 4、代碼維護成本較高; 陽〇1引 5、容錯率低;
[0013] 6、服務端需要和多個平臺或者語言調試;
[0014] 7、無法自動化生成數據的過程。
[0015] 為解決上述問題,本發明提供一種基于跨語言定長數據的通訊協議自動轉換方法 及系統。
【發明內容】
[0016] 為克服上述現有技術的不足,本發明提供一種基于跨語言定長數據的通訊協議轉 換生成方法及系統。
[0017] 實現上述目的所采用的解決方案為:
[0018] 一種跨平臺通訊協議代碼的轉換方法,其改進之處在于:所述方法包括W下步 驟:
[0019] 定義基于二進制數據的通用通訊協議,所述通用通訊協議包括協議頭和數據實 體,所述協議頭用于保存所述數據實體的長度和所述通訊協議的協議信令;
[0020] 根據所述通用通訊協議,編寫包含所述通用通訊協議內容的描述文件;
[0021] 確定所述通訊協議需轉換成的語言類型,對所述描述文件的內容進行格式轉換;
[0022] 生成并調用通訊協議接口文件。
[0023] 優選地,所述協議頭為8bit,前4bit保存數據實體的長度,后4bit保存通訊協議 信令;
[0024] 所述數據實體為25化it,分為4bit、4bit、4bit和24化it,分別用于保存發送數據 的W、接收數據的W、消息類型和消息內容。
[00巧]優選地,運用XML格式定義所述描述文件;
[00%] 所述描述文件,包括數據類型、數據對象、請求接口、回調接口;
[0027] 所述數據對象為所述描述文件的數據的組合;
[0028] 所述數據接口,用于請求服務器的方法名和需傳入的參數;
[0029] 所述回調接口,用于為服務器返回獲得的數據。
[0030] 優選地,所述步驟:編寫包含所述通訊協議內容的描述文件;包括:
[0031] 根據待轉換通訊協議,依次進行W下步驟完成所述XML描述文件的定義:
[0032] 確定描述文件的整體結構的節點,在所述跟節點下定義所述通訊協議的數據類 型;
[0033] 在所述根節點下定義所述通訊協議的數據數組; 陽034] 在所述根節點下定義所述通訊協議的結構體;
[0035] 在所述根節點下定義所述通訊協議的所有的請求方法集合;
[0036] 在所述根節點下定義所述通訊協議的所有的回調方法集合;
[0037] 在請求接點或返回節點下使用method定義請求方法或回調方法; 陽038] 在method節點下定義請求或者回調方法的參數。
[0039] 優選地,所述步驟:確定所述通訊協議需轉換成的語言類型,對所述描述文件的內 容進行格式轉換;包括:
[0040] 從所述描述語言中獲取數據類型,并確定所述通用通訊協議需要轉換成的語言類 型;
[0041] 根據所述描述文件中的數據類型及待轉換成的數據類型,調用特征數據轉換方 法,實現所述特征數據的轉換。
[0042] 優選地,所述步驟:生成并調用通訊協議接口文件;包括:
[0043] 轉換后整合代碼文件生成通訊協議接口文件,包括請求函數、回調接口和工具函 數;
[0044] 將所述代碼文件發送給語言平臺;
[0045] 所述語言平臺調用所述通訊協議接口文件。
[0046] 一種跨平臺通訊協議代碼的轉換系統,其改進之處在于:所述系統包括描述文件 生成模塊、協議轉換模塊和接口生成模塊;
[0047] 所述描述文件生成模塊,用于讀取通用通訊協議,根據所述通用通訊協議編寫包 含所述通用通訊協議內容的描述文件;
[0048] 所述協議轉換模塊,用于從所述描述語言中獲取數據類型,并確定所述通用通訊 協議需要轉換成的語言類型;根據所述描述文件中的數據類型及待轉換成的數據類型,調 用特征數據轉換方法,實現所述特征數據的轉換;
[0049] 所述接口生成模塊,用于獲取轉換后的通訊協議,生成通訊協議接口文件,供所述 語言平臺調用。
[0050] 優選地,所述通用通訊協議包括協議頭和數據實體,所述協議頭用于保存所述數 據實體的長度和所述通訊協議的協議信令;
[0051] 所述協議頭為8bit,前4bit保存數據實體的長度,后4bit保存通訊協議信令;
[0052] 所述數據實體為25化it,分為4bit、4bit、4bit和24化it,分別用于保存發送數據 的W、接收數據的W、消息類型和消息內容。
[0053] 優選地,運用XML格式定義所述描述文件;
[0054] 所述描述文件,包括數據類型、數據對象、請求接口、回調接口;
[0055] 所述數據對象為所述描述文件的數據的組合;
[0056] 所述數據接口,用于請求服務器的方法名和需傳入的參數;
[0057] 所述回調接口,用于為服務器返回獲得的數據。
[0058] 優選地,所述描述文件生成模塊,包括完成W下各步的子模塊:
[0059] 確定描述文件的整體結構的節點,在所述跟節點下定義所述通訊協議的數據類 型;
[0060] 在所述根節點下定義所述通訊協議的數據數組;
[0061] 在所述根節點下定義所述通訊協議的結構體;
[0062] 在所述根節點下定義所述通訊協議的所有的請求方法集合;
[0063] 在所述根節點下定義所述通訊協議的所有的回調方法集合;
[0064] 在請求接點或返回節點下使用method定義請求方法或回調方法; 陽0化]在method節點下定義請求或者回調方法的參數。
[0066] 與最接近的現有技術相比,本發明具有W下有益效果:
[0067] 1、本發明提供的方法能夠快速生成協議接口,定長數據協議適用于任何語言,從 而無需多語言調試,大幅度提高容錯率。
[0068] 2、本發明提供的方法在通訊協議變更后其他語言工作量為零,提高了工作效率。
[0069] 3、本發明提供的方法在二次開