[發明專利]一種消息交互處理方法、客戶端和服務端有效
| 申請號: | 201710257914.X | 申請日: | 2017-04-19 |
| 公開(公告)號: | CN107147620B | 公開(公告)日: | 2020-07-24 |
| 發明(設計)人: | 方敏 | 申請(專利權)人: | 武漢聚風天下科技有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京輕創知識產權代理有限公司 11212 | 代理人: | 陳衛 |
| 地址: | 430000 湖北省武漢市洪*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 消息 交互 處理 方法 客戶端 服務端 | ||
1.一種消息交互處理方法,應用于客戶端,其特征在于,包括如下步驟:
步驟1:與服務端建立連接;
步驟2:根據用戶輸入的請求命令生成請求消息,將所述請求消息發送至服務端,并判斷所述請求消息是否為同步消息,如果是,則將用于處理所述請求消息的業務線程設置為阻塞等待狀態,進入步驟3,否則進入步驟4;
步驟3:接收從服務端返回的回復消息,將所述回復消息設置為所述請求消息的答復消息,通知所述業務線程結束阻塞等待狀態,結束處理流程;
步驟4:接收從服務端返回的回復消息,并調用socket連接對象的數據處理方法對所述回復消息進行處理,結束處理流程;
所述步驟1的具體實現為:
步驟11:初始化,根據服務端的IP地址設置連接參數,建立連接socket通道,并向服務端發送連接請求,以使服務端接收到連接請求后生成所述客戶端對應的連接ID;
步驟12:客戶端生成獲取連接ID請求消息,并通過所述socket通道向服務端發送獲取連接ID請求消息;
步驟13:接收服務端返回的連接ID回復消息,并從所述連接ID回復消息中讀取客戶端的連接ID,建立連接成功;
其中,所述連接ID請求消息的消息ID生成規則為:
服務端IP地址:連接ID:X;
X為由1開始遞增的變量,且初次發送連接ID請求消息時,所述連接ID為空。
2.根據權利要求1所述的消息交互處理方法,其特征在于:與服務端建立連接之后,還包括:監測與服務端的連接狀態,具體為:
定期創建一個空的ping消息;
根據所述ping消息生成ping消息對應的消息ID;
向所述socket通道中寫入所述ping消息和所述ping消息對應的消息ID,并等待接收從服務端返回的ping回復消息,如果接收到ping回復消息,且根據所述ping回復消息讀取的原消息ID與所述ping消息對應的消息ID相同,則判定與服務端處于連接狀態,否則判定與服務端處于斷開連接狀態;
其中,生成ping消息ID的生成規則具體為:
服務端IP地址:連接ID:X;
其中,X為由1開始遞增的變量,且初次發送ping消息時,所述連接ID為空。
3.根據權利要求1所述的消息交互處理方法,其特征在于:所述步驟2中,發送請求消息的具體實現為:
步驟21:根據用戶輸入的請求命令生成請求消息,根據所述請求消息生成請求消息對應的消息ID,并創建請求消息上下文;
步驟22:判斷所述請求消息是否為同步消息,如果是,則將所述業務線程設置為阻塞等待狀態,并將所述請求消息上下文、請求消息對應的消息ID和處于阻塞狀態的業務線程存儲至等待回復消息隊列中,否則不做處理;
步驟23:將所述請求消息存儲至寫消息隊列中;
步驟24:從所述寫消息隊列中逐個取出所述請求消息,將取出的所述請求消息轉換為字節流,并向客戶端的socket通道中寫入該字節流,再將所述請求消息從所述寫消息隊列中刪除,完成所述請求消息發送;
其中,所述請求消息上下文包括業務線程、請求消息和返回消息,且初次發送請求消息時,所述返回消息為空,所述請求消息對應的消息ID和回復消息對應的消息ID均為從1開始遞增的變量,且初次發送請求消息時,二者均為1。
4.根據權利要求3所述的消息交互處理方法,其特征在于:所述步驟3的具體實現為:
步驟31:讀線程接收從服務端返回的回復消息,讀取所述回復消息中的原消息ID;
步驟32:判斷所述回復消息中的原消息ID是否存在于所述等待回復消息隊列中,如果是,則將所述回復消息設置為所述請求消息上下文的答復消息,通知所述業務線程結束阻塞等待狀態,并從所述等待回復消息隊列中刪除對應的處于阻塞狀態的業務線程,否則,直接進入步驟4;
所述步驟4的具體實現為:
讀線程接收從服務端返回的回復消息,讀取回復消息中的數據信息,并將所述數據信息從字節流轉換為消息格式,并調用socket連接對象的數據處理方法對消息格式的所述數據信息進行處理;
其中,所述請求消息對應的消息ID為所述回復消息的原消息ID。
5.一種客戶端,其特征在于,包括:
連接模塊,用于與服務端建立連接;
發送模塊,用于接收用戶的請求消息,并將所述請求消息發送至服務端;
判斷模塊,用于判斷所述請求消息是否為同步消息,并在所述請求消息為同步消息時,將處理所述請求消息的業務線程設置為阻塞等待狀態,直到服務端返回所述請求消息對應的回復消息;
接收處理模塊,用于接收服務端返回的回復消息,并在所述請求消息為同步消息時,將所述回復消息設置為所述請求消息的答復消息,通知所述業務線程結束阻塞等待狀態;在所述請求消息為異步消息時,調用socket連接對象的數據處理方法對所述回復消息進行同步處理;
所述連接模塊具體用于:初始化,根據服務端的IP地址設置連接參數,建立連接socket通道,并向服務端發送連接請求,以使服務端接收到連接請求后生成所述客戶端對應的連接ID;客戶端生成獲取連接ID請求消息,并通過所述socket通道向服務端發送獲取連接ID請求消息;接收服務端返回的連接ID回復消息,并從所述連接ID回復消息中讀取客戶端的連接ID,建立連接成功;其中,所述連接ID請求消息的消息ID生成規則為:
服務端IP地址:連接ID:X;
X為由1開始遞增的變量,且初次發送連接ID請求消息時,所述連接ID為空。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢聚風天下科技有限公司,未經武漢聚風天下科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710257914.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:自行車燈(XC?231)
- 下一篇:光電極及其制造方法、以及光電化學電池





