專利名稱:邏輯中轉(zhuǎn)通信方法、邏輯中轉(zhuǎn)服務器和邏輯中轉(zhuǎn)通信系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,特別涉及一種邏輯中轉(zhuǎn)通信方法、邏輯中轉(zhuǎn)服務器和邏輯中轉(zhuǎn)通信系統(tǒng)。
背景技術:
隨著網(wǎng)絡的發(fā)展,人們對信息的渴求越來越大,比如希望知道運行在當前服務器上的信息,獲取運行在同一網(wǎng)絡中的其他服務器上的信息等。現(xiàn)有技術在同一網(wǎng)絡中,有些服務器之間未建立通信連接,彼此相互獨立,相互獨立的服務器之間不能傳遞應用邏輯和通信,因而運行在該獨立的服務器上的客戶端不能與運行在另一獨立的服務器上的客戶端進行交互。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:未建立通信連接的服務器上運行的客戶端之間不能傳遞應用邏輯和通信。
發(fā)明內(nèi)容
為了在未建立通信連接的服務器上運行的客戶端之間實現(xiàn)通信,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信方法、邏輯中轉(zhuǎn)服務器和邏輯中轉(zhuǎn)通信系統(tǒng)。所述技術方案如下:本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信方法,所述方法包括:接收請求客戶端通過請求服務器發(fā)送的通信消息,所述請求客戶端連接在所述請求服務器上;解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,使所述目的服務器將所述通信消息發(fā)送給目的客戶端,所述目的客戶端連接在所述目的服務器上;接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息,并將所述響應消息通過請求服務器發(fā)送給請求客戶端,以使所述請求客戶端與目的客戶端進行通信。其中,所述通信消息中至少攜帶目的服務器的標識和請求信息,相應地,所述解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,具體包括:解析所述通信消息至少得到目的服務器的標識;根據(jù)所述目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器。其中,所述接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息之后,所述方法還包括:目的服務器判斷所述響應消息中是否攜帶同意響應的信息;當攜帶同意響應的信息時,則斷開與所述目的客戶端的連接,并將所述目的客戶端連接到請求服務器上,使所述目的客戶端和所述請求客戶端均連接請求服務器。本發(fā)明實施例還提供了一種邏輯中轉(zhuǎn)通信方法,所述方法包括:接收第一服務器發(fā)送的通知消息,并緩存所述通知消息;
廣播所述通知消息,以使第二服務器拉取所述通知消息。其中,所述廣播所述通知消息,以使第二服務器拉取所述通知消息之后,所述方法還包括:判斷所述通知消息是否被拉??;根據(jù)拉取結(jié)果執(zhí)行相應的操作,具體包括:當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息;當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時間時,繼續(xù)緩存所述通知消息。本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)服務器,所述邏輯中轉(zhuǎn)服務器包括:接收模塊,用于接收請求客戶端通過請求服務器發(fā)送的通信消息,所述請求客戶端連接在所述請求服務器上;發(fā)送模塊,用于解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,使所述目的服務器將所述通信消息發(fā)送給目的客戶端,所述目的客戶端連接在所述目的服務器上;轉(zhuǎn)發(fā)模塊,用于接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息,并將所述響應消息通過請求服務器發(fā)送給所述請求服務器,以使所述請求客戶端與所述目的客戶端進行通信。其中,所述通信消息中至少攜帶目的服務器的標識和請求信息,相應地,所述發(fā)送模塊包括解析單元和發(fā)送單元;所述解析單元,用于解析所述通信消息至少得到目的服務器的標識;所述發(fā)送單元,用于根據(jù)所述解析單元解析得到的目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器。本發(fā)明實施例還提供了一種邏輯中轉(zhuǎn)服務器,所述邏輯中轉(zhuǎn)服務器包括:接收模塊,用于接收第一服務器發(fā)送的通知消息,并緩存所述通知消息;轉(zhuǎn)發(fā)模塊,用于廣播所述通知消息,以使第二服務器拉取所述通知消息。其中,所述邏輯中轉(zhuǎn)服務器還包括執(zhí)行模塊,所述執(zhí)行模塊具體包括判斷單元和執(zhí)行單元,所述判斷單元,用于判斷所述通知消息是否被拉?。凰鰣?zhí)行單元,用于當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息;當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時間時,繼續(xù)緩存所述通知消息。本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信系統(tǒng),所述邏輯中轉(zhuǎn)通信系統(tǒng)包括第一服務器、第二服務器和邏輯中轉(zhuǎn)服務器,所述第一服務器與所述第二服務器之間未建立通信連接,所述第一服務器上運行第一客戶端,所述第二服務器上運行第二客戶端;所述第一服務器,用于接收第一客戶端發(fā)送的通信消息,并將所述通信消息發(fā)送給邏輯中轉(zhuǎn)服務器;
所述邏輯中轉(zhuǎn)服務器,用于接收所述通信消息;解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的第二服務器;接收所述第二客戶端通過第二服務器發(fā)送的響應消息,并將所述響應消息通過第一服務器發(fā)送給第一客戶端;所述第二服務器,用于將所述邏輯中轉(zhuǎn)服務器發(fā)送的通信消息發(fā)送給第二客戶端,接收所述第二客戶端發(fā)送的響應消息,將所述響應消息發(fā)送給所述邏輯中轉(zhuǎn)服務器。其中,所述邏輯中轉(zhuǎn)服務器具體包括接收模塊、發(fā)送模塊和轉(zhuǎn)發(fā)模塊;所述接收模塊,用于接收第一客戶端通過第一服務器發(fā)送的通信消息,所述通信消息中至少攜帶目的服務器的標識和請求信息;所述發(fā)送模塊具體包括解析單元和發(fā)送單元;所述解析單元,用于解析所述通信消息至少得到目的服務器的標識;所述發(fā)送單元,用于根據(jù)所述目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器;轉(zhuǎn)發(fā)模塊,用于接收所述第二客戶端通過第二服務器發(fā)送的響應消息,并將所述響應消息通過所述第一服務器發(fā)送給第一客戶端。其中,所述第二服務器還用于判斷所述響應消息中是否攜帶同意響應的信息;當攜帶同意響應的信息時,則斷開與所述第二客戶端的連接,并將所述第二客戶端連接到第一服務器上,使所述第二客戶端和所述第一客戶端均運行在第一服務器上。本發(fā)明實施例還提供了一種邏輯中轉(zhuǎn)通信系統(tǒng),所述系統(tǒng)包括第一服務器、第二服務器和邏輯中轉(zhuǎn)服務器;所述第一服務器,用于發(fā)送通知消息;所述邏輯中轉(zhuǎn)服務器,用于接收所述第一服務器發(fā)送的通知消息,并緩存所述通知消息;廣播所述通知消息;所述第二服務器,用于從所述邏輯中轉(zhuǎn)服務器拉取所述通知消息。其中,所述邏輯中轉(zhuǎn)服務器具體用于:判斷所述通知消息是否被拉取,當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息;當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時間時,繼續(xù)緩存所述通知消息。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,實現(xiàn)了各獨立服務器上的客戶端之間的應用邏輯傳遞和通信的交互,從而使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例1提供的邏輯中轉(zhuǎn)通信方法流程圖2是本發(fā)明實施例2提供的應用場景示意圖;圖3是本發(fā)明實施例2提供的邏輯中轉(zhuǎn)通信方法流程圖;圖4是本發(fā)明實施例3提供的應用場景示意圖;圖5是本發(fā)明實施例3提供的邏輯中轉(zhuǎn)通信方法流程圖;圖6是本發(fā)明實施例4提供的邏輯中轉(zhuǎn)服務器的結(jié)構示意圖;圖7是本發(fā)明實施例5提供的邏輯中轉(zhuǎn)服務器的結(jié)構示意圖;圖8是本發(fā)明實施例5提供的邏輯中轉(zhuǎn)服務器的另一結(jié)構示意圖;圖9是本發(fā)明實施例6提供的邏輯中轉(zhuǎn)通信系統(tǒng)的結(jié)構示意圖;圖10是本發(fā)明實施例7提供的邏輯中轉(zhuǎn)通信系統(tǒng)的結(jié)構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。實施例1參見圖1,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信方法,所述方法包括:步驟101:接收請求客戶端通過請求服務器發(fā)送的通信消息,該請求客戶端運行在請求服務器上;步驟102:解析通信消息,根據(jù)解析結(jié)果將通信消息發(fā)送給目的服務器,使目的服務器將該通信消息發(fā)送給目的客戶端,該目的客戶端運行在目的服務器上;步驟103:接收目的客戶端通過目的服務器發(fā)送的響應消息,并將響應消息通過請求服務器發(fā)送給請求客戶端,以使請求客戶端與目的客戶端進行通信。本發(fā)明實施例提供的方法,通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,實現(xiàn)了各獨立服務器上的客戶端之間的應用邏輯傳遞和通信的交互,從而使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。實施例2本發(fā)明實施例的應用場景參見圖2所示,網(wǎng)絡中包括至少兩個獨立服務器和邏輯中轉(zhuǎn)服務器,每個獨立服務器對應一個客戶端,且各獨立服務器之間未建立通信連接,即對應的客戶端之間不能傳遞應用邏輯也不能通信。當各獨立服務器對應的客戶端之間需要通信時,可以由發(fā)起請求的客戶端A通過對應的獨立服務器將通信消息發(fā)送給邏輯中轉(zhuǎn)服務器,由邏輯中轉(zhuǎn)服務器進行應用邏輯的傳遞,從而接受響應的服務器對應的客戶端B,能夠與客戶端A進行信息交互及通信,增強了各服務器對應的客戶端之間的交互能力。參見圖3,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信方法,所述方法包括:步驟201:邏輯中轉(zhuǎn)服務器接收第一獨立服務器發(fā)送的通信消息。其中,本發(fā)明實施例設置了邏輯中轉(zhuǎn)服務器,該邏輯中轉(zhuǎn)服務器與各獨立服務器之間建立連接,作為各服務器之間的通信中樞,完成各服務器之間的信息交互,從而使各服務器對應的客戶端之間進行通信。本發(fā)明實施例中將各獨立服務器以第一獨立服務器、第二獨立服務器等為例進行說明,實際應用中,該獨立服務器可以為若干個,本發(fā)明對此不做限定。
其中,在該步驟之前,第一獨立服務器對應的客戶端向第一獨立服務器發(fā)送通信消息,由第一獨立服務器將該通信消息發(fā)送給邏輯中轉(zhuǎn)服務器。本發(fā)明實施例中,網(wǎng)絡中至少包括第一獨立服務器A和第二獨立服務器B,且第一客戶端A’連接在第一獨立服務器A上,第二客戶端B’連接在第二獨立服務器B上,即獨立服務器與客戶端之間為C/S結(jié)構。當?shù)谝豢蛻舳薃’欲與第二客戶端B’進行信息交互和通信時,第一客戶端A’向?qū)牡谝华毩⒎掌鰽發(fā)送通信消息,該第一獨立服務器A將該通信消息發(fā)送給邏輯中轉(zhuǎn)服務器,由邏輯中轉(zhuǎn)服務器將該通信消息傳遞給對應的服務器,從而使該服務器對應的客戶端獲取到該通信消息。具體地,第一獨立服務器通過邏輯中轉(zhuǎn)服務器與第二獨立服務器進行信息交互時,該第一獨立服務器為請求服務器,第二獨立服務器為目的服務器,相應地,第一獨立服務器對應的第一客戶端為請求客戶端,第二獨立服務器對應的第二客戶端為目的客戶端。第一獨立服務器向邏輯中轉(zhuǎn)服務器發(fā)送通信消息,其中,該通信消息中攜帶目的服務器的標識和請求信息,該目的服務器的標識可以為一個或若干個,請求信息可以為一種應用也可以為多種應用。也就是說,請求客戶端可以請求與一個或多個服務器對應的客戶端進行交互和通信。如,該通信消息中攜帶了目的服務器的標識B,且對應請求信息a時,即表明第一獨立服務器對應的客戶端欲與服務器B對應的客戶端進行信息交互,交互的信息為a ;如,通信消息中攜帶了兩個第二服務器的標識B和C,且服務器B對應的請求信息為b,服務器C對應的請求信息為c,即表明第一獨立服務器欲與兩個第二獨立服務器均要進行信息交互,且交互的信息不同,與服務器B交互的信息為b,與服務器C交互的信息為C。步驟202:解析該通信消息,并根據(jù)解析結(jié)果將請求消息發(fā)送給對應的服務器。具體地,邏輯中轉(zhuǎn)服務器接收到該通信消息后,首先解析該通信消息,解析出通信消息中攜帶的目的服務器的標識,根據(jù)目的服務器的標識確定出將該通信消息發(fā)送給哪個服務器。如,通信消息中攜帶了服務器的標識B,且對應請求信息a,此時,邏輯中轉(zhuǎn)服務器解析該通信消息得到目的服務器的標識為B,確定出將該通信消息發(fā)送給服務器B ;如,通信消息中攜帶了兩個第二服務器的標識B和C,且與服務器B對應的請求信息為b,與服務器C對應請求信息為C,此時,邏輯中轉(zhuǎn)服務器解析該通信消息得到目的服務器的標識為B和C,確定出將該通信消息發(fā)送給服務器B和服務器C。步驟203:第二獨立服務器接收到該通信消息,將該通信消息發(fā)送給第二獨立服務器對應的第二客戶端,并將第二客戶端返回的響應消息返回給邏輯中轉(zhuǎn)服務器。具體地,第二獨立服務器即目的服務器接收到通信消息后,解析該通信消息得到請求服務器的標識和請求信息,將該通信消息發(fā)送給對應的第二客戶端,該第二客戶端即為目的服務器。第二客戶端根據(jù)自身情況確定是否與請求服務器對應的第一客戶端進行交互,向第二獨立服務器返回響應消息,然后該響應消息經(jīng)過第二獨立服務器-邏輯中轉(zhuǎn)服務器-第一獨立服務器-第一客戶端的順序,發(fā)送給第一客戶端,第一客戶端接收到該響應消息,根據(jù)該響應消息獲知第二客戶端是否確定與自身進行信息交互。步驟204:第二獨立服務器判斷該響應消息中是否攜帶同意交互的信息,若是,則執(zhí)行步驟205,若否,則執(zhí)行步驟206 ;步驟205:第二獨立服務器斷開與第二客戶端的連接,并將該第二客戶端連接到第一獨立服務器,使得第二客戶端與第一客戶端能夠通信。其中,第二客戶端確定與第一客戶端進行交互時,向第二獨立服務器返回攜帶同意交互的信息的響應消息,且,第二獨立服務器接收到同意交互的響應消息后,斷開與第二客戶端的連接,并使該第二客戶端連接到第一獨立服務器,從而第一客戶端和第二客戶端均連接在同一個服務器,第一客戶端和第二客戶端完成信息交互和通信。另外,若第一客戶端接收到同意交互的響應消息后,也可以主動連接第二客戶端,與第二客戶端進行通信。步驟206:第二獨立服務器不做處理。其中,第二客戶端確定出與請求服務器不進行交互時,向第二獨立服務器返回不同意交互的信息響應消息。然后該響應消息經(jīng)過第二獨立服務器-邏輯中轉(zhuǎn)服務器-第一獨立服務器-第一客戶端的順序,發(fā)送給第一客戶端,第一客戶端接收到該響應消息,根據(jù)該響應消息獲知第二客戶端不與自身進行信息交互。例如,服務器A對應的客戶端A’(如玩家A’)想向服務器B對應的客戶端B’(如玩家B’ )發(fā)起約戰(zhàn)邀請,一起玩某一棋牌游戲,但兩個玩家不在同一個服務器中時,此時,玩家A’向服務器A發(fā)送通信消息,服務器A將該通信消息發(fā)送給邏輯中轉(zhuǎn)服務器,該通信消息中攜帶目的服務器的標識B’和請求信息a,該a的內(nèi)容為約戰(zhàn)邀請應用;邏輯中轉(zhuǎn)服務器解析出該玩家A’欲與服務器B對應的玩家B’進行交互通信,向服務器B通知通信消息,服務器B收到通信消息后,詢問玩家B’是否進行交互通信,當玩家B’同意交互通信時,服務器B切斷該客戶端B’與服務器B的連接,并將該客戶端B’連接到服務器A上,從而玩家B’能夠連接到玩家A所在的服務器A的某個桌子進行游戲。另外,本發(fā)明實施例還提供了備用邏輯中轉(zhuǎn)服務器,當?shù)谝环掌鳈z測到邏輯中轉(zhuǎn)服務器發(fā)生異常,不能正常處理時,將通信消息發(fā)送給備用邏輯中轉(zhuǎn)服務器,該備用邏輯中轉(zhuǎn)服務器與邏輯中轉(zhuǎn)服務器的結(jié)構和作用相同,增加了信息交互系統(tǒng)的容錯能力。本發(fā)明實施例提供的方法,通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,實現(xiàn)了各獨立服務器上的客戶端之間的應用邏輯傳遞和通信的交互,從而使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。實施例3本發(fā)明實施例的應用場景參見圖4所示,網(wǎng)絡中包括了至少一個公共服務器、至少一個獨立服務器和邏輯中轉(zhuǎn)服務器,當公共服務器向網(wǎng)絡中的獨立服務器發(fā)送通知消息時,可以通過邏輯中轉(zhuǎn)服務器進行集中轉(zhuǎn)發(fā),從而公共服務器將通知消息集中推送出去,而不必向每個獨立服務器單獨推送,減少了消息發(fā)送的重復率,增強了服務器之間的交互能力。參見圖5,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信方法,所述方法包括:步驟301:接收第一服務器發(fā)送的通知消息。其中,通知消息用于通知給網(wǎng)絡內(nèi)的所有服務器,該通知消息中攜帶運營活動信息、目的服務器的標識和有效時間等信息,本發(fā)明實施例設置了邏輯中轉(zhuǎn)服務器,該邏輯中轉(zhuǎn)服務器與第一服務器和第二服務器之間建立連接,作為各服務器之間的通信中樞,完成各服務器之間的信息交互。本發(fā)明實施例中,第一服務器即公共服務器首先將通知消息發(fā)送給邏輯中轉(zhuǎn)服務器,然后由邏輯中轉(zhuǎn)服務器進一步通知給各獨立服務器,獨立服務器即第二服務器,因而公共服務器集中將該通知消息發(fā)送給邏輯中轉(zhuǎn)服務器后,不必要向每個獨立服務器單獨發(fā)送通知消息,減少了消息發(fā)送的重復率,且將通知消息集中發(fā)送給邏輯中轉(zhuǎn)服務器,由邏輯中轉(zhuǎn)服務器觸發(fā)各獨立服務器來讀取該通知消息。其中,該公共服務器可以為消息服務器、道具服務器、商城服務器、資源服務器或地圖服務器等任意各獨立服務器共用的服務器,該公共服務器可視為運營商,可以向各獨立服務器推送通知消息,從而使各獨立服務器均接收到公共服務器的通知消息,完成公共服務器與各獨立服務器之間的信息交互。步驟302:緩存該通知消息,并廣播該通知消息。具體地,邏輯中轉(zhuǎn)服務器接收到公共服務器發(fā)送的通知消息后,首先緩存該通知消息,可以將該通知消息緩存在本地消息隊列中,然后,邏輯中轉(zhuǎn)服務器解析該通知消息,并同時緩存該解析結(jié)果,該解析結(jié)果可以為運營活動信息、目的服務器的標識和有效時間,等待各獨立服務器主動來獲取該通知消息。邏輯中轉(zhuǎn)服務器緩存通知消息和解析結(jié)果后,廣播該通知消息。步驟303:判斷該通知消息是否被拉取,若是,則執(zhí)行步驟304 ;若否取,則執(zhí)行步驟305或步驟306 ;其中,各獨立服務器會定時向邏輯中轉(zhuǎn)服務器拉取通知消息。判斷該通知消息是否被拉取,具體包括:當解析結(jié)果中緩存有目的服務器的標識,且該目的服務器的標識對應的獨立服務器拉取到該通知消息時,則表明該通知消息被拉??;當解析結(jié)果中緩存有目的服務器的標識,且該目的服務器的標識對應的獨立服務器未拉取該通知消息時,則表明該通知消息未被拉?。划斀馕鼋Y(jié)果中未緩存目的服務器的標識,則只要有一個獨立服務器拉取了該通知消息,則表明該通知消息被拉取。其中,各獨立服務器拉取通知消息時,判斷解析結(jié)果中是否緩存有目的服務器的標識,當解析結(jié)果中緩存有目的服務器的標識時,則表明該通知消息推送給預設的獨立服務器,此時,判斷該目的服務器的標識是否為自身,當該目的服務器的標識為自身時,表明該通知消息是發(fā)給該獨立服務器的通知消息,拉取該通知消息;當該目的服務器的標識不為自身時,則不拉取。當解析結(jié)果中沒有緩存目的服務器的標識時,則表明該通知消息是推送給網(wǎng)絡中的所有的獨立服務器,獨立服務器拉取該通知消息。步驟304:刪除該通知消息。步驟305:繼續(xù)緩存該通知消息。其中,當邏輯中轉(zhuǎn)服務器判斷出通知消息未被拉取,且解析結(jié)果中不包括有效時間,則邏輯中轉(zhuǎn)服務器不做處理,繼續(xù)緩存該通知消息,等待獨立服務器來拉取該通知消
肩、O步驟306:判斷當前時間是否超過預設的過期時間,若是,則執(zhí)行步驟304,若否,執(zhí)行步驟305。其中,當邏輯中轉(zhuǎn)服務器判斷出通知消息未被拉取,且解析結(jié)果中包括有有效時間時,本發(fā)明實施例還包括,邏輯中轉(zhuǎn)服務器預設過期時間,判斷當前時間是否超過過期時間,若超過過期時間,則刪除該通知消息,若未超過過期時間,則不做處理,邏輯中轉(zhuǎn)服務器繼續(xù)緩存該通知消息。另外,本發(fā)明實施例還提供了備用邏輯中轉(zhuǎn)服務器,當公共服務器檢測到邏輯中轉(zhuǎn)服務器發(fā)生異常,不能正常處理時,將通知消息發(fā)送給備用邏輯中轉(zhuǎn)服務器,該備用邏輯中轉(zhuǎn)服務器與邏輯中轉(zhuǎn)服務器的結(jié)構和作用相同,增加了信息交互系統(tǒng)的容錯能力。本發(fā)明實施例提供的方法,公共服務器向網(wǎng)絡中的各獨立服務器發(fā)送通知消息時,通過邏輯中轉(zhuǎn)服務器進行集中推送,減少了公共服務器推送通知消息的重復率,且由邏輯中轉(zhuǎn)服務器對各通知消息進行進一步的邏輯控制,增強了服務器之間的交互能力。實施例4參見圖6,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)服務器,所述邏輯中轉(zhuǎn)服務器包括:接收模塊401,用于接收請求客戶端通過請求服務器發(fā)送的通信消息,所述請求客戶端連接在所述請求服務器上;發(fā)送模塊402,用于解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,使所述目的服務器將所述通信消息發(fā)送給目的客戶端,所述目的客戶端連接在所述目的服務器上;轉(zhuǎn)發(fā)模塊403,用于接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息,并將所述響應消息通過請求服務器發(fā)送給所述請求服務器,以使所述請求客戶端與所述目的客戶端進行通信。其中,通知消息中至少攜帶目的服務器的標識和請求信息,相應地,發(fā)送模塊包括解析單元和發(fā)送單元;解析單元,用于解析通知消息至少得到目的服務器的標識;發(fā)送單元,用于根據(jù)所述解析單元解析得到的目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器。本實施例提供的邏輯中轉(zhuǎn)服務器,具體可以與方法實施例2屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。其中,本發(fā)明實施例中,第一服務器和第二服務器之間未建立通信連接。本發(fā)明實施例提供的邏輯中轉(zhuǎn)服務器,通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,實現(xiàn)了各獨立服務器上的客戶端之間的應用邏輯傳遞和通信的交互,從而使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。實施例5參見圖7,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)服務器,所述邏輯中轉(zhuǎn)服務器包括:接收模塊501,用于接收第一服務器發(fā)送的通知消息,并緩存通知消息;轉(zhuǎn)發(fā)模塊502,用于廣播通知消息,以使第二服務器拉取通知消息。其中,參見圖8,邏輯中轉(zhuǎn)服務器還包括執(zhí)行模塊503,該執(zhí)行模塊503具體包括判斷單元和執(zhí)行單元,判斷單元,用于判斷通知消息是否被拉?。粓?zhí)行單元,用于當拉取結(jié)果為通知消息被拉取時,則刪除通知消息;
當拉取結(jié)果為通知消息未被拉取時,則繼續(xù)緩存通知消息或判斷當前時間是否超過預設的過期時間,當當前時間超過過期時間時,刪除通知消息;當當前時間未超過過期時間時,繼續(xù)緩存通知消息。本實施例提供的邏輯中轉(zhuǎn)服務器,具體可以與方法實施例3屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。其中,本發(fā)明實施例中的第一服務器可以為公共服務器,如消息服務器、道具服務器、商城服務器、資源服務器或地圖服務器等任意各獨立服務器共用的服務器,該公共服務器可視為運營商,可以向第二服務器推送通知消息,從而使各第二服務器均接收到公共服務器的通知消息,完成公共服務器與第二服務器之間的信息交互。第二服務器可以為網(wǎng)絡中的執(zhí)行某一應用或功能的應用服務器。本發(fā)明實施例提供的邏輯中轉(zhuǎn)服務器,當?shù)谝环掌飨蚓W(wǎng)絡中的其他服務器發(fā)送通知消息時,通過邏輯中轉(zhuǎn)服務器進行集中推送,減少了第一服務器推送通知消息的重復率,且由邏輯中轉(zhuǎn)服務器對各通知消息進行進一步的邏輯控制,增強了服務器之間的交互能力。實施例6參見圖9,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信系統(tǒng),所述邏輯中轉(zhuǎn)通信系統(tǒng)包括第一服務器601、邏輯中轉(zhuǎn)服務器602和第二服務器603,第一服務器601與第二服務器603之間未建立通信連接,第一服務器601上運行有第一客戶端601a,第二服務器603上運行有第二客戶端603a ;第一服務器601,用于接收第一客戶端發(fā)送的通信消息,并將所述通信消息發(fā)送給邏輯中轉(zhuǎn)服務器602;邏輯中轉(zhuǎn)服務器602,用于接收第一服務器601發(fā)送的通知消息;解析通知消息,根據(jù)解析結(jié)果將通信消息發(fā)送給對應的第二服務器603 ;接收第二客戶端603a通過第二服務器603發(fā)送的響應消息,并將響應消息通過第一服務器601發(fā)送給第一客戶端601a ;第二服務器603,用于將邏輯中轉(zhuǎn)服務器602發(fā)送的通信消息發(fā)送給第二客戶端603a,接收第二客戶端603a發(fā)送的響應消息,將響應消息發(fā)送給邏輯中轉(zhuǎn)服務器602。其中,邏輯中轉(zhuǎn)服務器602具體包括接收模塊、發(fā)送模塊和轉(zhuǎn)發(fā)模塊;接收模塊,用于接收第一客戶端通過第一服務器發(fā)送的通知消息,通知消息中至少攜帶目的服務器的標識和請求信息;發(fā)送模塊具體包括解析單元和發(fā)送單元;解析單元,用于解析通知消息至少得到目的服務器的標識;發(fā)送單元,用于根據(jù)所述目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器;轉(zhuǎn)發(fā)模塊,用于接收第二客戶端通過第二服務器發(fā)送的響應消息,并將響應消息通過第一服務器發(fā)送給第一客戶端。其中,所述第二服務器還用于判斷響應消息中是否攜帶同意響應的信息;當攜帶同意響應的信息時,則斷開與第二客戶端的連接,并將第二客戶端連接到第一服務器上,使第二客戶端和第一客戶端均運行在第一服務器上。本實施例提供的系統(tǒng),具體可以與方法實施例2屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。其中,本發(fā)明實施例中,第一服務器和第二服務器之間未建立通信連接。本發(fā)明實施例提供的系統(tǒng),通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,實現(xiàn)了各獨立服務器上的客戶端之間的應用邏輯傳遞和通信的交互,從而使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。實施例7參見圖10,本發(fā)明實施例提供了一種邏輯中轉(zhuǎn)通信系統(tǒng),所述系統(tǒng)包括第一服務器701、邏輯中轉(zhuǎn)服務器702和第二服務器703 ;第一服務器701,用于發(fā)送通知消息;邏輯中轉(zhuǎn)服務器702,用于接收第一服務器701發(fā)送的通知消息,并緩存通知消息;廣播通知消息;第二服務器703,用于從邏輯中轉(zhuǎn)服務器702拉取通知消息。其中,邏輯中轉(zhuǎn)服務器702具體用于:判斷通知消息是否被拉取,當拉取結(jié)果為通知消息被拉取時,則刪除通知消息;當拉取結(jié)果為通知消息未被拉取時,則繼續(xù)緩存通知消息或判斷當前時間是否超過預設的過期時間,當當前時間超過過期時間時,刪除通知消息;當當前時間未超過過期時間時,繼續(xù)緩存通知消息。本實施例提供的系統(tǒng),具體可以與方法實施例3屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。其中,本發(fā)明實施例中的第一服務器可以為公共服務器,如消息服務器、道具服務器、商城服務器、資源服務器或地圖服務器等任意各獨立服務器共用的服務器,該公共服務器可視為運營商,可以向第二服務器推送通知消息,從而使各第二服務器均接收到公共服務器的通知消息,完成公共服務器與第二服務器之間的信息交互。第二服務器可以為網(wǎng)絡中的執(zhí)行某一應用或功能的應用服務器。本發(fā)明實施例提供的系統(tǒng),第一服務器向網(wǎng)絡中的第二服務器發(fā)送通知消息時,通過邏輯中轉(zhuǎn)服務器進行集中推送,減少了第一服務器推送通知消息的重復率,且由邏輯中轉(zhuǎn)服務器對各通知消息進行進一步的邏輯控制,增強了服務器之間的交互能力。本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種邏輯中轉(zhuǎn)通信方法,其特征在于,所述方法包括: 接收請求客戶端通過請求服務器發(fā)送的通信消息,所述請求客戶端運行在所述請求服務器上; 解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,使所述目的服務器將所述通信消息發(fā)送給目的客戶端,所述目的客戶端運行在所述目的服務器上; 接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息,并將所述響應消息通過請求服務器發(fā)送給請求客戶端,以使所述請求客戶端與目的客戶端進行通信。
2.如權利要求1所述的方法,其特征在于,所述通信消息中至少攜帶目的服務器的標識和請求信息,相應地,所述解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,具體包括: 解析所述通信消息至少得到目的服務器的標識; 根據(jù)所述目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器。
3.如權利要求1所述的方法,其特征在于,所述接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息之后,所述方法還包括: 目的服務器判斷所述響應消息中是否攜帶同意響應的信息; 當攜帶同意響應的信息時,則斷開與所述目的客戶端的連接,并將所述目的客戶端連接到請求服務器上,使所述目的客戶端和所述請求客戶端均連接請求服務器。`
4.一種邏輯中轉(zhuǎn)通信方法,其特征在于,所述方法包括: 接收第一服務器發(fā)送的通知消息,并緩存所述通知消息; 廣播所述通知消息,以使第二服務器拉取所述通知消息。
5.如權利要求4所述的方法,其特征在于,所述廣播所述通知消息,以使第二服務器拉取所述通知消息之后,所述方法還包括: 判斷所述通知消息是否被拉取; 根據(jù)拉取結(jié)果執(zhí)行相應的操作,具體包括: 當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息; 當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時間時,繼續(xù)緩存所述通知消息。
6.一種邏輯中轉(zhuǎn)服務器,其特征在于,所述邏輯中轉(zhuǎn)服務器包括: 接收模塊,用于接收請求客戶端通過請求服務器發(fā)送的通信消息,所述請求客戶端連接在所述請求服務器上; 發(fā)送模塊,用于解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的目的服務器,使所述目的服務器將所述通信消息發(fā)送給目的客戶端,所述目的客戶端連接在所述目的服務器上; 轉(zhuǎn)發(fā)模塊,用于接收所述目的客戶端通過所述目的服務器發(fā)送的響應消息,并將所述響應消息通過請求服務器發(fā)送給所述請求服務器,以使所述請求客戶端與所述目的客戶端進行通信。
7.如權利要求6所述的邏輯中轉(zhuǎn)服務器,其特征在于,所述通信消息中至少攜帶目的服務器的標識和請求信息,相應地,所述發(fā)送模塊包括解析單元和發(fā)送單元; 所述解析單元,用于解析所述通信消息至少得到目的服務器的標識; 所述發(fā)送單元,用于根據(jù)所述解析單元解析得到的目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器。
8.一種邏輯中轉(zhuǎn)服務器,其特征在于,所述邏輯中轉(zhuǎn)服務器包括: 接收模塊,用于接收第一服務器發(fā)送的通知消息,并緩存所述通知消息; 轉(zhuǎn)發(fā)模塊,用于廣播所述通知消息,以使第二服務器拉取所述通知消息。
9.如權利要求8所述的邏輯中轉(zhuǎn)服務器,其特征在于,所述邏輯中轉(zhuǎn)服務器還包括執(zhí)行模塊,所述執(zhí)行模塊具體包括判斷單元和執(zhí)行單元, 所述判斷單元,用于判斷所述通知消息是否被拉?。? 所述執(zhí)行單元,用于當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息; 當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時間時,繼續(xù)緩存所述通知消息。
10.一種邏輯中轉(zhuǎn)通信系統(tǒng),其特征在于,所述邏輯中轉(zhuǎn)通信系統(tǒng)包括第一服務器、邏輯中轉(zhuǎn)服務器和第二服務器,所述第一服務器與所述第二服務器之間未建立通信連接,所述第一服務器上運行有第一客戶端,所述第二服務器上運行有第二客戶端; 所述第一服務器,用于接收第一客戶端發(fā)送的通信消息,并將所述通信消息發(fā)送給邏輯中轉(zhuǎn)服務器; 所述邏輯中轉(zhuǎn)服務器,用于接收所述通信消息;解析所述通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給對應的第二服務器;接收所述第二客戶端通過第二服務器發(fā)送的響應消息,并將所述響應消息通過第一服務器發(fā)送給第一客戶端; 所述第二服務器,用于將所述邏輯中轉(zhuǎn)服務器發(fā)送的通信消息發(fā)送給第二客戶端,接收所述第二客戶端發(fā)送的響應消息,將所述響應消息發(fā)送給所述邏輯中轉(zhuǎn)服務器。
11.如權利要求10所述的系統(tǒng),其特征在于,所述邏輯中轉(zhuǎn)服務器具體包括接收模塊、發(fā)送模塊和轉(zhuǎn)發(fā)模塊; 所述接收模塊,用于接收第一客戶端通過第一服務器發(fā)送的通信消息,所述通信消息中至少攜帶目的服務器的標識和請求信息; 所述發(fā)送模塊具體包括解析單元和發(fā)送單元; 所述解析單元,用于解析所述通信消息至少得到目的服務器的標識; 所述發(fā)送單元,用于根據(jù)所述目的服務器的標識確定出目的服務器,并將所述通信消息發(fā)送給對應的目的服務器; 轉(zhuǎn)發(fā)模塊,用于接收所述第二客戶端通過第二服務器發(fā)送的響應消息,并將所述響應消息通過所述第一服務器發(fā)送給第一客戶端。
12.如權利要求10所述的系統(tǒng),其特征在于,所述第二服務器還用于判斷所述響應消息中是否攜帶同意響應的信息; 當攜帶同意響應的信息時,則斷開與所述第二客戶端的連接,并將所述第二客戶端連接到第一服務器上,使所述第二客戶端和所述第一客戶端均運行在第一服務器上。
13.一種邏輯中轉(zhuǎn)通信系統(tǒng),其特征在于,所述系統(tǒng)包括第一服務器、第二服務器和邏輯中轉(zhuǎn)服務器; 所述第一服務器,用于發(fā)送通知消息; 所述邏輯中轉(zhuǎn)服務器,用于接收所述第一服務器發(fā)送的通知消息,并緩存所述通知消息;廣播所述通知消息; 所述第二服務器,用于從所述邏輯中轉(zhuǎn)服務器拉取所述通知消息。
14.如權利要求13所述的系統(tǒng),其特征在于,所述邏輯中轉(zhuǎn)服務器還用于:判斷所述通知消息是否被拉取, 當拉取結(jié)果為所述通知消息被拉取時,則刪除所述通知消息; 當拉取結(jié)果為所述通知消息未被拉取時,則繼續(xù)緩存所述通知消息或判斷當前時間是否超過預設的過期時間,當所述當前時間超過所述過期時間時,刪除所述通知消息;當所述當前時間未超過所述過期時 間時,繼續(xù)緩存所述通知消息。
全文摘要
本發(fā)明公開了一種邏輯中轉(zhuǎn)通信方法、邏輯中轉(zhuǎn)服務器和邏輯中轉(zhuǎn)通信系統(tǒng),屬于通信領域。所述方法包括接收第一服務器發(fā)送的通信消息;解析所述第一通信消息,根據(jù)解析結(jié)果將所述通信消息發(fā)送給第二服務器;接收所述第二服務器發(fā)送的響應消息,并將所述響應消息發(fā)送給第一服務器,以使所述第一服務器上運行的第一客戶端與第二服務器上運行的第二客戶端進行通信。所示中轉(zhuǎn)服務器包括接受模塊、發(fā)送模塊和轉(zhuǎn)發(fā)模塊。本發(fā)明在各服務器之間不能進行通信時,通過邏輯中轉(zhuǎn)服務器完成與各獨立服務器對應的客戶端之間的信息交互,使原來互相之間不具有交互能力的服務器對應的客戶端之間建立通信,增強了各獨立服務器對應的客戶端之間的交互能力。
文檔編號H04L12/58GK103188134SQ20111045232
公開日2013年7月3日 申請日期2011年12月29日 優(yōu)先權日2011年12月29日
發(fā)明者李偉, 賀志強, 俞烜 申請人:騰訊科技(深圳)有限公司