消息發送和消息接收裝置及其方法和消息交互系統的制作方法
【技術領域】
[0001]本發明涉及數據交互技術領域,具體而言,涉及一種消息發送裝置、一種消息接收裝置、一種消息發送方法、一種消息接收方法及消息交互系統。
【背景技術】
[0002]目前很多消息傳輸的鏈路都是不可靠的,不可靠的原因分兩種:一種是物理鏈路不可靠,有可能出現一些不穩定因素導致消息丟失,一種是采用的協議不是可靠傳輸的協議,也有可能導致消息丟失。
[0003]因此,需要一種新的技術方案,可以在不可靠的鏈路下使消息可以進行可靠傳輸,從而確保傳輸的安全性和可靠性。
【發明內容】
[0004]本發明正是基于上述問題,提出了一種新的技術方案,可以在不可靠的鏈路下使消息可以進行可靠傳輸,從而確保傳輸的安全性和可靠性。
[0005]有鑒于此,本發明提出了一種消息發送裝置,包括:統計單元,統計發送至同一個消息接收裝置的多個發送消息;編號分配單元,連接至所述統計單元,按照預設編號分配順序和所述多個發送消息的發送順序,為所述多個發送消息中的每個發送消息分配對應的發送編號,其中,所述每個發送消息具有唯一的發送編號,且所述每個發送消息對應的發送編號與相鄰的發送消息對應的發送編號連續;交互單元,連接至所述編號分配單元,按照所述多個發送消息的發送順序,將所述每個發送消息和與所述每個發送消息對應的發送編號發送至所述消息接收裝置,以供所述消息接收裝置根據所述預設編號分配順序和接收到的發送消息對應的發送編號確定未接收到的發送消息。
[0006]在該技術方案中,根據預設編號順序和發送至同一個消息接收裝置的多個發送消息中每個發送消息的發送順序為每個發送消息分配一個發送編號,并且每個發送編號唯一,且多個發送編號連續,比如,為發送至一個消息接收裝置的10個發送消息分別分配從1到10的數字編號,這樣,根據編號順序和接收到的發送消息的編號,可以確定未接收到的發送消息,比如接收到編號為1,2,3,6的發送消息,則此時可以確定編號3和編號6之間編號為4和5的發送消息未接收到,從而由消息接收裝置重新向消息發送裝置請求發送編號為4和5的消息,從而實現不可靠鏈路的可靠傳輸,保證數據的傳輸安全。
[0007]其中,編號連續是指編號之間有前后連續的關系,能判斷大小,并且能夠通過任一兩個編號得出兩者中間的編號。
[0008]在上述技術方案中,優選地,還包括:存儲單元,連接至所述編號分配單元,將所述多個發送消息中的每個發送消息和與所述每個發送消息對應的發送編號進行關聯存儲。
[0009]在該技術方案中,可以將每個發送消息和與其對應的發送編號進行關聯存儲,從而方便根據消息接收裝置發送的發送編號為其確定對應的發送消息,并再次向消息接收裝置發送該消息。
[0010]在上述技術方案中,優選地,所述交互單元還用于:在接收到所述消息接收裝置發送的任一發送編號時,從所述存儲單元存儲的所有發送編號中,查找出與所述任一發送編號匹配的目標發送編號,并獲取與所述目標發送編號相關聯的目標發送消息,并將所述目標發送編號和所述目標發送消息發送至所述消息接收裝置。
[0011]在該技術方案中,在消息發送裝置接收到消息接收裝置發送的發送編號時,從存儲的信息中查找出該編號對應的發送消息,繼而重新將該發送消息發送給消息接收裝置,保證消息接收裝置可以接收到消息發送裝置發送的所有消息。
[0012]在上述技術方案中,優選地,所述交互單元還用于:接收所述消息接收裝置發送的最新發送編號查詢請求,以及根據所述最新發送編號查詢請求,查詢所述消息發送裝置最新發送至所述消息接收裝置的最新發送編號,并將所述最新發送編號發送至所述消息接收裝置,以供所述消息接收裝置根據所述最新發送編號確定是否存在未接收到的發送消息。
[0013]在該技術方案中,消息接收裝置如果未接收到新消息,按照預設時間間隔(如5秒鐘)會向消息發送裝置發送一次最新發送編號查詢請求,從而方便消息接收裝置確定是否已經接收到消息發送裝置發送的所有發送消息,是否有未接收到的發送消息。
[0014]在上述技術方案中,優選地,所述發送編號的類型包括數字編號和/或字母編號。
[0015]在該技術方案中,發送編號包括但是不限于數字編號和字母編號,其中,各發送編號為連續編號,連續編號是指有前后連續關系的代碼的組合,能判斷大小,并且能通過任意兩個編號能得出兩者中間的編號。當發送編號是數字編號時,如十進制的數字:編號110的下一個編號為111,編號110和編號115之間的編號為111,112,113和114。當發送編號為字母編號時,如aaa的下一個編號為aab, aab和aad中間的編號為aac。類似的例子還有很多,總之,只要能比較任何兩個編號的大小,能通過一個編號得到它的下一個編號,能通過任何兩個編號能得到中間的編號的所有的有規則的代碼組合都符合要求。
[0016]根據本發明的另一方面,還提供了一種消息接收裝置,包括:交互單元,接收所述消息發送裝置發送的多個發送消息和與所述多個發送消息中每個發送消息對應的發送編號;確定單元,連接至所述交互單元,根據預設編號分配順序和接收到的發送編號的接收順序,確定所述消息接收裝置未接收到的發送消息。
[0017]在該技術方案中,消息發送裝置根據預設編號順序和發送至同一個消息接收裝置的多個發送消息中每個發送消息的發送順序為每個發送消息分配一個發送編號,并且每個發送編號唯一,且多個發送編號連續,比如,為發送至一個消息接收裝置的10個發送消息分別分配從1到10的數字編號,這樣,消息接收裝置根據編號順序和接收到的發送消息的編號,可以確定未接收到的發送消息,比如接收到編號為1,2,3,6的發送消息,則此時可以確定編號3和編號6之間編號為4和5的發送消息未接收到,從而由消息接收裝置重新向消息發送裝置請求發送編號為4和5的消息,從而實現不可靠鏈路的可靠傳輸,保證數據的傳輸安全。
[0018]在上述技術方案中,優選地,所述交互單元還用于:將接收到的多個發送消息發送至所述消息接收隊列中;所述消息接收裝置還包括:判斷單元,連接至所述交互單元,按照預設時間間隔判斷所述消息接收隊列中是否存在發送消息;獲取單元,連接至所述判斷單元,在判斷結果為所述消息接收隊列中存在所述發送消息時,獲取所述消息發送隊列中的當前隊首發送消息;比較單元,連接至所述獲取單元,根據所述預設編號分配順序將所述當前隊首發送消息對應的第一發送編號與上一次解析的發送消息對應的第二發送消息編號進行比較;以及所述確定單元具體用于:根據所述第一發送消息和所述第二發送消息的比較結果確定所述第一發送編號與所述第二發送編號之間是否存在未接收到的其他發送編號,以確定是否存在未接收到的發送消息。
[0019]在該技術方案,消息接收裝置將接收到的發送消息放入消息接收隊列中,并從消息接收隊列中提取發送消息進行解析,在上一次解析完成時,則從隊首獲取發送消息進行解析,在獲取到發送消息時,將該發送消息的發送編號與上一次解析的發送消息的發送編號進行比較,進而判斷兩者是否是相鄰的,如果兩者相鄰,則說明不存在未接收到的消息,如果兩者不相鄰,則說明中間有未接收到的消息。
[0020]在上述技術方案中,優選地,所述交互單元還用于:在判斷結果為所述接收隊列中不存在所述發送消息時,向所述消息發送裝置發送最新發送編號查詢請求;所述比較單元還用于:在接收到所述消息發送裝置發送的最新發送編號時,根據所述預設編號分配順序將所述最新發送編號與所述當前隊首發送消息的所述第一發送編號進行比較;所述確定單元還用于:根據所述第一發送編號和所述最新發送編號的比較結果確定所述最新發送編號和所述第一發送編號之間是否存在未接收到的所述其他發送編號,以確定是否存在未接收到的發送消息。
[0021]在該技術方案中,消息接收裝置如果未接收到新消息,按照預設時間間隔(如5秒鐘)會向消息發送裝置發送一次最新發送編號查詢請求,從而方便消息接收裝置確定是否已經接收到消息發送裝置發送的所有發送消息,是否有未接收到的發送消息。
[0022]在上述技術方案中,優選地,所述交互單元還用于:在所述第一發送編號和所述第二發送編號之間存在所述其他發送編號時,將所述其他發送編號發送至所述消息發送裝置,以供所述消息發送裝置查找并發送所述其他發送編號對應的發送消息至所述消息接收裝置,以及接收所述消息發送裝置發送的所述其他發送編號對應的發送消息。
[0023]在該技術方案中,消息接收裝置可以將未接收到的發送信號發給消息發送裝置,在消息發送裝置接收到消息接收裝置發送的發送編號時,從存儲的信息中查找出該編號對應的發送消息,繼而重新將該發送消息發送給消息接收裝置,保證消息接收裝置可以接收到消息發送裝置發送的所有消息。
[0024]在上述技術方案中,優選地,所述確定單元具體用于:在所述第一發送編號的編號分配順序位于所述第二發送編號的編號分配順序之前時,將所述第一發送編號對應的發送消息舍棄,并確定所述第一發送編號與所述第二發送編號之間不存在未接收到的其他發送編號;在所述第一發送編號的編號分配順序位于所述第二發送編號的編號分配順序之后,且所述第一發送編號與所述第二發送編號的編號分配順序相鄰時,確定所述第一發送編號與所述第二發送編號之間不存在未接收到的其他發送編號;在所述第一發送編號的編號分配順序位于所述第二發送編號的編號分配順序之后,且所述第一發送編號與所述第二發送編號的編號分配順序不相鄰時,確定所述第一發送編號與所述第二發送編號之間存在未接收到的其他發送編號,并根據所述第一發送編號的編號分配順序和所述第二發送編號的編號分配順序確定未接收到的其他發送編號;以及在所述第一發送編號與所述最新發送編號一致時,確定不存在未接收到的發送消息;在所述