欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于頻道的消息路由方法

文檔序號:7768200閱讀:371來源:國知局
專利名稱:基于頻道的消息路由方法
技術領域
本發(fā)明涉及數據交換領域,具體而言,涉及一種基于頻道的消息路由方法。
背景技術
隨著現代計算機技術和網絡通訊技術的不斷發(fā)展普及,利用互聯網進行數據交換
及資源共享已經非常普遍。數據交換是指利用計算機網絡,把分散在若干應用系統中的數據進行相互傳輸和共享,從而提高信息資源的利用率。在網絡中,數據的交換和傳輸通常是通過路由分配來實現的?,F有技術中,數據交換路由方法通常是靜態(tài)的,發(fā)送方通過指定接收方的 IPdnternet Protocol,網絡之間互連通協議)地址等信息來確定發(fā)送目標,即由數據發(fā)送方指定數據交換路徑。但是直接使用IP地址實現數據交換技術實現較復雜,對開發(fā)人員要求比較高,而且發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好。若需要增加新的系統(傳輸節(jié)點)時需要通知所有發(fā)送端更新地址列表。且群發(fā)消息時需要遍歷每個目標系統,增加或刪除系統均會帶來不便。由此可見,現有技術中的數據路由方法技術復雜,而且發(fā)送端和接收端直接連接, 系統緊耦合,導致系統擴展性不好,實現不夠方便靈活。

發(fā)明內容
本發(fā)明旨在提供一種基于頻道的消息路由方法,以解決現有技術中的數據路由方法技術復雜,發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好,實現不夠方便靈活的問題。為了實現上述目的,本發(fā)明提供了一種基于頻道的消息路由方法,包括消息接收步驟,接收消息發(fā)送裝置發(fā)送的消息,其中,消息包括數據部分以及消息頭,消息頭包含消息頻道標識信息;提取步驟,提取消息頻道標識信息,將數據部分存儲至與消息頻道標識信息對應的預定的消息頻道區(qū);轉發(fā)步驟,從預定的消息頻道區(qū)提取數據部分,并按照預定消息路由方式將數據部分轉發(fā)至消息接收裝置。進一步地,提取步驟還包括提取消息頻道標識信息后,驗證消息發(fā)送裝置是否具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限;當消息發(fā)送裝置具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限時,將數據部分存儲至與消息頻道標識信息對應的預定的消息頻道區(qū);當消息發(fā)送裝置不具有發(fā)送消息的權限時,放棄對消息執(zhí)行操作。進一步地,消息頭還包括接收端標識信息以及廣播標識信息,預定消息路由方式包括點對點模式、訂閱模式以及廣播模式,在轉發(fā)步驟中通過提取接收端標識信息以及廣播標識信息確定預定消息路由方式,其中,當接收端標識信息非空且廣播標識信息為第一信息時,預定消息路由方式為點對點模式;當接收端標識信息為空且廣播標識信息為第一信息時,預定消息路由方式為訂閱模式;當接收端標識信息為空且廣播標識信息為第二信息時,預定消息路由方式為廣播模式。進一步地,當預定消息路由方式為點對點模式時,轉發(fā)步驟包括從預定的消息頻道區(qū)提取數據部分,并轉發(fā)至接收端標識信息對應的消息接收裝置。進一步地,當預定消息路由方式為訂閱模式時,轉發(fā)步驟包括從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分,按照預定轉發(fā)次序依次轉發(fā)至接收端列表對應的消息接收裝置。進一步地,當存在在線的所述消息接收裝置時,所述預定轉發(fā)次序包括在線的消息接收裝置對應的接收端列表的排列次序。進一步地,當所述消息接收裝置均不在線時,所述預定轉發(fā)次序包括接收端列表列出的第一個登錄的消息接收裝置。進一步地,當預定消息路由方式為廣播模式且存在在線的消息接收裝置時,轉發(fā)步驟包括從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分,分別轉發(fā)至接收端列表中在線的消息接收裝置。進一步地,當預定消息路由方式為廣播模式且存在不在線的消息接收裝置時,轉發(fā)步驟包括從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分,在消息接收裝置登錄時將所述數據部分轉發(fā)給該裝置。。應用本發(fā)明的技術方案,通過提取消息中所包含的消息頻道信息,將數據部分存儲至與消息頻道信息相對應的消息頻道區(qū)內,并轉發(fā)至消息接收裝置,以實現消息在發(fā)送端與接收端之間的路由,即消息發(fā)送裝置與消息接收裝置不需要直接連接,且消息發(fā)送裝置在發(fā)送消息時也不需要指定接收方的IP地址,當消息接收裝置數量增加或減少時,對消息發(fā)送裝置不會產生較大影響,克服了現有技術中的數據路由方法技術實現復雜,發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好,實現不夠方便靈活的問題。除了上面所描述的目的、特征和優(yōu)點之外,本發(fā)明還有其它的目的、特征和優(yōu)點。 下面將參照圖,對本發(fā)明作進一步詳細的說明。


附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖1示出了本發(fā)明的系統結構示意圖一;圖2示出了本發(fā)明的系統結構示意圖二 ;圖3示出了本發(fā)明實施例一的流程圖;圖4示出了本發(fā)明實施例二的流程圖;圖5示出了本發(fā)明實施例三的消息發(fā)送裝置工作流程圖;圖6示出了本發(fā)明實施例三的消息接收裝置工作流程圖;以及圖7示出了本發(fā)明實施例三的交換服務器工作流程圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例進行詳細說明,但是本發(fā)明可以由權利要求限定和覆蓋的多種不同方式實施。圖1示出了本發(fā)明的系統結構示意圖一。參見圖1,實施本發(fā)明消息路由方法的系統包括消息發(fā)送裝置11,與消息發(fā)送裝置11連接的交換服務器12以及與交換服務器12 直接連接或通過網絡連接的多個消息接收裝置13。圖2示出了本發(fā)明的系統結構示意圖二。參見圖2,實施本發(fā)明消息路由方法的系統也可以包括多個消息發(fā)送裝置11,與多個消息發(fā)送裝置11連接的交換服務器12以及與交換服務器12直接連接或通過網絡連接的多個消息接收裝置13。本發(fā)明消息路由方法的主要處理過程位于交換服務器12內,雖然圖1與圖2所示的系統結構有所區(qū)別,但具體的消息路由方法相同,并將在以下的實施例中詳細介紹。下面結合圖3詳細說明本發(fā)明的實施例一。圖3示出了本發(fā)明實施例的流程圖。如圖3所示,基于頻道的消息路由方法包括S10,接收消息發(fā)送裝置發(fā)送的消息,即完成消息接收步驟。其中,消息包括數據部分以及消息頭,消息頭包含消息頻道標識信息。具體地,數據交換服務器12接收消息發(fā)送裝置11發(fā)送的消息。消息發(fā)送裝置11 在發(fā)送消息時,所發(fā)送的消息不僅包括數據部分,還包括消息頭,并且消息頭包含消息頻道 fn息οS12,提取消息頻道標識信息,將數據部分存儲至與消息頻道標識信息對應的預定的消息頻道區(qū),即實現提取步驟。具體地,數據交換服務器12從所接收的消息中的消息頭部分提取消息頻道標識信息,并將該消息的數據部分存儲至于所提取的消息頻道標識信息對應的消息頻道區(qū)內。如數據交換服務器所接收的消息Al的消息頭中提取的消息頻道標識信息為 “SyStemS20100706”,則數據交換服務器12會將消息Al的數據部分存儲至數據交換服務器 12中與“systems20100706”對應的存儲區(qū)內。S14,從預定的消息頻道區(qū)提取數據部分,并按照預定消息路由方式將數據部分轉發(fā)至消息接收裝置,即完成轉發(fā)步驟。具體地,數據交換服務器12將消息的數據部分存儲在與消息頻道標識信息對應的消息存儲區(qū)后,按照預定的消息路由方式將數據部分發(fā)送至消息接收裝置13,可以將其只發(fā)送給一個消息接收裝置,也可將其發(fā)送給多個消息接收裝置。如數據交換服務器12將消息Al的數據部分存儲至與“SyStemS20100706”對應的存儲區(qū)內后,若預定的消息路由方式是“將頻道標識為SyStemS20100706的消息頻道區(qū)內的數據全部發(fā)送至消息接收裝置 App5與消息接收裝置App6”,則數據交換服務器12會根據該消息路由方式將頻道標識為 “SyStemS20100706”的消息頻道區(qū)內所有的數據轉發(fā)至消息接收裝置App5與消息接收裝置App6。預定的消息路由方式可由消息發(fā)送裝置11指定,也可由數據交換服務器12根據發(fā)送的內容以及用戶的需求確定。在本實施例中,通過提取消息中所包含的消息頻道信息,將數據部分存儲至與消息頻道信息相對應的消息頻道區(qū)內,并轉發(fā)至消息接收裝置,以實現消息在發(fā)送端與接收端之間的路由,即消息發(fā)送裝置與消息接收裝置不需要直接連接,且消息發(fā)送裝置在發(fā)送消息時也不需要指定接收方的IP地址,當消息接收裝置數量增加或減少時,對消息發(fā)送裝置不會產生較大影響,克服了現有技術中的數據路由方法技術實現復雜,發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好,實現不夠方便靈活的問題。下面結合圖4詳細說明本發(fā)明的實施例二。圖4示出了本發(fā)明實施例二的流程圖。與實施例一不同的是,轉發(fā)步驟S12包括S121,提取消息頻道標識信息。S122,驗證消息發(fā)送裝置是否具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限,當消息發(fā)送裝置具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限時,轉至步驟S123 ;否則,執(zhí)行步驟S16,放棄對該消息執(zhí)行操作。S123,將數據部分存儲至與消息頻道標識信息對應的預定的消息頻道區(qū)。即在實施例一的步驟S12中,添加驗證消息發(fā)送裝置11是否具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限的步驟,以確保整個消息路由過程中數據傳輸的安全性,防止圖1中的消息發(fā)送裝置11或者圖2中的多個消息發(fā)送裝置11中的某個消息發(fā)送裝置不具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限時,將消息錯誤發(fā)送至數據交換服務器12中,從而導致數據發(fā)送錯誤情況的出現。具體地,數據交換服務器12提取消息頻道標識信息后,數據交換服務器器12對消息發(fā)送裝置11的發(fā)送權限進行驗證,驗證圖1或者圖2中發(fā)送消息的消息發(fā)送裝置11是否具有向消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限,如果該消息發(fā)送裝置11具有消息發(fā)送權限,則執(zhí)行步驟S123,即執(zhí)行實施例一原來的存儲步驟以及之后的處理步驟S14,但是若該消息發(fā)送裝置11不具有消息發(fā)送權限,則放棄對該消息發(fā)送裝置發(fā)送的消息執(zhí)行操作,即不執(zhí)行之后的步驟S14,直接結束該消息的發(fā)送過程。例如,圖1或圖2中的數據交換服務器12接收到消息發(fā)送裝置11發(fā)送的消息A2,且消息A2的消息頭包含的消息頻道標識信息為“ SyStemS20100706 ”,則數據交換服務器12提取消息標識信息“SyStemS20100706”,并驗證消息發(fā)送裝置11是否有向 “SyStemS20100706”對應的消息頻道區(qū)發(fā)送消息的權限。如果圖1所示的消息發(fā)送裝置 11或者圖2中所示的某個消息發(fā)送裝置11沒有向“SyStemS20100706”對應的消息頻道區(qū)發(fā)送消息的權限,則終止該消息發(fā)送裝置11發(fā)送消息的過程。如果該消息發(fā)送裝置11有向“SyStemS20100706”對應的消息頻道區(qū)發(fā)送消息的權限,則將該消息的數據部分存儲至 "systems20100706"對應的消息頻道區(qū)內。在本實施例中,驗證消息發(fā)送裝置11是否有向消息頻道標識信息對應的消息頻道區(qū)發(fā)送消息的權限,可以在數據交換服務器12中完成,或者通過與數據交換服務器12連接的頻道權限存儲設備進行驗證。具體的驗證過程可以為將每個預定頻道區(qū)對應的消息發(fā)送裝置的標識信息存儲在數據交換服務器12或者頻道權限存儲設備中,在驗證時,獲取發(fā)送消息的消息發(fā)送裝置11的標識信息,并與存儲的消息發(fā)送裝置的標識信息進行對比。 若相同,則認為該消息發(fā)送裝置具有向該頻道區(qū)發(fā)送消息的權限;否則,則認為該消息發(fā)送裝置不具有向該頻道區(qū)發(fā)送消息的權限。當然,還有其他的驗證方法,具體的驗證方法在現有技術中已有較多介紹,在此不再詳細描述。在本發(fā)明的上述實施例中,預定消息路由方式包括點對點模式、訂閱模式以及廣播模式。并且,通過消息頭中包含的信息區(qū)分這三種消息路由方式。具體地,為了識別這三種預定的消息路由方式,消息頭還包括接收端標識信息以及廣播標識信息,在轉發(fā)步驟中通過提取接收端標識信息以及廣播標識信息確定預定消息路由方式,以方便地確定消息路由方式。如通過接收端標識信息確定接收消息的消息接收裝置,通過廣播標識信息確定消息發(fā)送的范圍,且接收端標識信息可以為消息接收裝置的 ID (Identity,身份識別碼)或者消息接收裝置的其它標識信息。其中,當接收端標識信息非空且廣播標識信息為第一信息時,預定消息路由方式為點對點模式;當接收端標識信息為空且廣播標識信息為第一信息時,預定消息路由方式為訂閱模式;當接收端標識信息為空且廣播標識信息為第二信息時,預定消息路由方式為廣播模式,如第一信息為“false”,第二信息為“true”。例如,設定消息頭為8位二進制代碼,并設定第1位至第3位中包含消息頻道的標識信息,第4位至第7位表示接收端標識信息,第8位表示廣播標識信息,當第8位為二進制的“ 1”時,可以認為廣播標識信息為“true”,當第8位為二進制的“0”時,可以認為廣播標識信息為“false”。具體的第一信息與第二信息所代表的含義可根據消息路由方式的具體應用環(huán)境進行選擇,在此不再詳細描述選擇規(guī)則。但為了方便描述,在本發(fā)明的實施例中, 第一信息指“false”,第二信息指“true”。采用這樣設置的方式,發(fā)送端可以很方便的指定消息接收者和消息發(fā)送的范圍。下面將詳細描述每種模式下的消息路由方式。當預定消息路由方式為點對點模式時,在執(zhí)行完消息接收步驟以及提取步驟后, 轉發(fā)步驟包括從預定的消息頻道區(qū)提取數據部分,并轉發(fā)至接收端標識信息對應的消息接收裝置。在點對點模式下,即使消息接收端增加新的消息接收裝置,對已有的消息接收裝置的接收端標識信息也不會有影響,且在發(fā)送端不知道新的消息接收裝置的標識信息的情況下,消息路由過程仍可執(zhí)行。例如,若消息發(fā)送裝置11的標識信息為Appl,包括兩個消息接收裝置13,接收端標識信息分別為App2和App3,且消息路由方式為點對點模式時,具體的消息路由過程如下所示步驟1、消息發(fā)送裝置Appl在消息頭指定向消息頻道為“systemdO 100706”發(fā)送消息,指定消息接收者為App2和App3對應的消息接收裝置,設置廣播標志信息為false,表示非廣播消息。步驟2、數據交換服務器12接收到來自Appl的消息后,從消息頭提取發(fā)送端指定的消息頻道信息為“SyStemS20100706”、接收端標識信息為App2和App3,廣播標志信息為
false。步驟3、數據交換服務器12在頻道權限存儲設備驗證Appl是否有向消息頻道 “SyStemS20100706”發(fā)送消息的權限,如果沒有權限,終止消息發(fā)送過程;如果Appl有向消息頻道“syStemS20100706”發(fā)送消息的權限,則將Appl發(fā)送的消息的數據部分存儲在 “systems20100706”對應的消息頻道區(qū)。步驟4、數據交換服務器12根據所提取的接收端標識信息,判定消息接收標識為 App2和App3對應的消息接收裝置,根據判定出的消息接收者形成消息路由表,其中,App2 和App3為消息路由表的接收終端。且由于接收端標識信息非空,因此表示消息發(fā)送裝置11 指定了具體的消息接收端。步驟5、數據交換服務器12依照消息路由表將消息轉發(fā)給App2和App3對應的消息接收裝置13。步驟6、接收端標識信息為App2和App3的消息接收裝置13接收消息。當預定消息路由方式為訂閱模式時,執(zhí)行完消息接收步驟以及提取步驟后,轉發(fā)步驟包括從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分,按照預定轉發(fā)次序依次轉發(fā)至接收端列表對應的消息接收裝置。且當存在在線的消息接收裝置時,預定轉發(fā)次序包括在線的消息接收裝置對應的接收端列表的排列次序;當消息接收裝置均不在線時,預定轉發(fā)次序包括接收端列表列出的第一個登錄的消息接收裝置。即根據消息發(fā)送裝置指定的發(fā)送范圍發(fā)送消息,且當消息接收裝置不在線時,在交換服務器中對該消息進行保存。采用這種消息路由方式,既不占用消息發(fā)送裝置的資源,同時又確保消息發(fā)送的及時性與可靠性。在本實施例中,接收端列表既可以存儲于數據交換服務器12中的存儲區(qū)內,也可以存儲在單獨的存儲設備中,如與交換服務器12相連接的數據頻道權限存儲設備或者其它的存儲設備。例如,若消息發(fā)送裝置11的標識為Appl,消息路由方式為訂閱模式時,具體的消息路由過程如下所示步驟1、消息發(fā)送裝置Appl在消息頭指定消息頻道為“SyStemS20100706”、不指定消息接收裝置,即指定的接收端標識信息為空,設置廣播標志信息為“false”,表示非廣播消息。步驟2、數據交換服務器12接收到來自Appl的消息后,從消息頭提取出發(fā)送端指定的消息頻道標識信息“SyStemS20100706”,消息接收者為空,廣播標志信息為false。步驟3、數據交換服務器12在頻道權限存儲設備驗證Appl是否有向所述消息頻道“SyStemS20100706”發(fā)送消息的權限,如果沒有權限,終止消息發(fā)送過程;如果Appl有向消息頻道“syStemS20100706”發(fā)送消息的權限,則將Appl發(fā)送的消息的數據部分存儲在 “systems20100706”對應的消息頻道區(qū)。步驟4、數據交換服務器12根據步驟2提取的消息頭信息,判斷出消息接收者信息為空。步驟5、數據交換服務器12在頻道權限存儲設備查詢步驟2中的消息頻道信息對應的接收端列表,例如查詢到對應于“systems20100706”的接收端列表中包括App2、App3 和App4三個消息接收端標識,且次序為App2、App3、App4。步驟6、數據交換服務器12根據步驟2提取的消息頭信息,得到該消息為非廣播消肩、ο步驟7、數據交換服務器12判斷接收端標識信息App2、App3和App4對應的消息接收裝置是否在線,如果App2和App3在線,則兩個在線的接收端輪流接收 “SyStemS20100706”對應的消息頻道區(qū)內的消息。如“SyStemS20100706”對應的消息頻道區(qū)多個消息均選擇訂閱模式,則依次先將第一個消息選擇App2作為接收者、第二個消息選擇App3作為接收者,由于App4不在線,不會將其作為接收者,第三個消息再選擇App2,并按照所選擇的接收者的次序依次形成每個消息的路由表,其中,路由表的接收終端為每個消息對應的接收者,然后進入步驟9。步驟8、如果App2、App3和App4均不在線,暫時不確定消息接收端,直至App2、App3和App4對應的消息接收裝置中的第一個登錄的接收端登錄后,將其作為消息的接收者放入路由表。假定在App2、App3和App4三個用戶均離線,此時標識為App4首先登錄系統,那么將App4作為接收者并將其放入路由表。步驟9、數據交換服務器12將消息轉發(fā)給路由表中的接收裝置。步驟10、消息接收裝置13是消息路由結果的接收端,執(zhí)行接收消息的任務。當預定消息路由方式為廣播模式且存在在線的消息接收裝置時,轉發(fā)步驟包括 從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分, 分別轉發(fā)至接收端列表中在線的消息接收裝置,即根據消息發(fā)送裝置指定的發(fā)送范圍發(fā)送消息。當預定消息路由方式為廣播模式時且存在不在線的消息接收裝置時,轉發(fā)步驟包括從存儲區(qū)提取預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取數據部分,在離線消息接收裝置登錄時將所述數據部分轉發(fā)給它。即當消息接收裝置不在線時,在交換服務器中對該消息進行保存。采用這種消息路由方式,既不占用消息發(fā)送裝置的資源, 同時又確保消息發(fā)送的及時性與可靠性。例如,若消息發(fā)送裝置11的標識信息為Appl,消息路由方式為廣播模式時,具體的消息路由過程如下所示步驟1、消息發(fā)送裝置Appl在消息頭指定消息頻道為“SyStemS20100706”、指定消息接收者為空,設置廣播標志為“true”,表示廣播消息。步驟2、數據交換服務器12接收到來自Appl的消息后,從消息頭提取發(fā)送端指定的消息頻道為“syStemS20100706”、消息接收者為空,廣播標志信息為“true”。步驟3、數據交換服務器12在頻道權限存儲設備驗證Appl是否有向所述消息頻道“SyStemS20100706”發(fā)送消息的權限,如果沒有權限,終止消息發(fā)送過程;如果Appl有向消息頻道“syStemS20100706”發(fā)送消息的權限,則將Appl發(fā)送的消息的數據部分存儲在 “systems20100706”對應的消息頻道區(qū)。步驟4、數據交換服務器12根據步驟2提取的消息頭信息,判斷出接收端標識信息為空。步驟5、數據交換服務器12在頻道權限存儲設備查詢步驟2中的消息頻道信息對應的接收端列表,例如查詢到對應于“systems20100706”的接收端列表中包括App2、App3 和App4三個消息接收端標識。步驟6、數據交換服務器12根據步驟2提取的消息頭信息,得到消息為廣播消息;步驟7、數據交換服務器12判斷接收端標識信息App2、App3和App4對應的消息接收裝置是否在線,如果App2和App3在線則這兩個接收端同時接收“SyStemS20100706” 對應的消息頻道區(qū)內的消息,并形成消息路由表,其中App2和App3為消息路由表的接收終端;由于App4不在線,在App4登錄時將所述數據部分轉發(fā)給App4。,將其作為消息的接收者放入路由表。步驟8、數據交換服務器12將消息轉發(fā)給路由表中的接收終端。步驟9、消息接收裝置13是消息路由結果的接收端,執(zhí)行接收消息的任務。在訂閱模式以及廣播模式下,當消息接收端增加新的消息接收裝置時,只需更新存儲的接收端列表即可,即便是不對接收端列表進行更新,路由過程仍可執(zhí)行。
在本發(fā)明的上述實施例中采用在消息頭中添加接收端標識信息來區(qū)別消息接收裝置,而不是采用接收端IP地址信息來區(qū)別消息接收裝置,這樣當消息接收端增加新的消息接收裝置時,就無需通知發(fā)送端更新IP地址列表,僅需通知增加新的消息接收裝置對應的接收端標識信息即可,甚至在訂閱模式以及廣播模式下,消息發(fā)送裝置無需更新IP地址列表,只需更新接收端列表即可。
下面結合圖5至圖7詳細描述本發(fā)明的實施例三。
其中,圖5示出了本發(fā)明實施例三的消息發(fā)送裝置工作流程圖,圖6示出了本發(fā)明實施例三的消息接收裝置工作流程圖,圖7示出了本發(fā)明實施例三的交換服務器工作流程圖。
如圖5所示,消息發(fā)送裝置11的工作流程如下所示
S501,指定消息頻道、接收者及廣播標識。即在發(fā)送的消息的消息頭中給出消息頻道標識信息、接收端標識信息以及廣播標識信息。
具體地,交換服務器12所提取的消息頭信息需要由消息發(fā)送裝置指定。且接收端標識信息及廣播標識信息為可選的信息,可以在發(fā)送消息時不對這兩種信息進行指定。
S502,發(fā)送消息。
S503,結束。
如圖6所示,消息接收裝置13的工作流程如下所示
S601,啟動監(jiān)聽線程。
具體地,每個消息接收裝置13不斷監(jiān)聽交換服務器12的信號,等待交換服務器12 向其發(fā)送消息。
S602,接收消息。
S603,結束。
如圖7所示,交換服務器12的工作流程如下所示
S701,接收消息。
S702,提取消息頻道、接收者和廣播標識。即從發(fā)送的消息的消息頭中提取消息頻道標識信息、接收端標識信息以及廣播標識信息。
S703,驗證頻道權限。若具有發(fā)送權限,轉至步驟S704,否則轉至步驟S711。即驗證發(fā)送消息的消息發(fā)送裝置是否具有向消息頭中指定的消息頻道發(fā)送消息的權限,若具有權限,則轉至步驟S704,若不具有權限,則轉至步驟S711。
S704,接收者是否為空。為空則轉至步驟S705,否則轉至步驟S706。即判斷接收端標識信息是否為空,為空則意味著沒有指定消息接收裝置,不為空則意味著已指定具體的消息接收裝置,且若消息接收端標識消息為空則轉至步驟S705,否則轉至步驟S706。
S705,獲取消息頻道對應的接收端列表。即在不指定消息接收裝置時,提取該消息頻道信息對應的接收端列表,轉至步驟S707。
S706,將接收者列表作為路由表中的消息接收端。即當消息發(fā)送裝置指定消息接收裝置時,將消息發(fā)送裝置中指定的消息接收裝置的接收端標識信息形成接收者列表,并作為路由表中的消息接收端,轉至步驟S710。
S707,判斷是否為廣播消息。是則轉至步驟S708,否則轉至步驟S709。即判斷接收的消息的消息頭中是否包含廣播標識信息,若廣播標識信息為true,則轉至步驟S708,若廣播標識信息為false,則轉至步驟S709。
S708,將接收端列表中所有的接收端標識信息作為路由表中的消息接收端。即接收的消息的消息頭中包含廣播標識信息時,將接收端列表中所有的接收端標識信息作為為路由表中的消息接收端。
S709,將接收端列表中的一個接收端標識信息作為路由表中的消息接收端。即接收的消息的消息頭中不包含廣播標識信息時,將接收端列表中的其中一個接收端標識信息作為為路由表中的消息接收端。具體的實現方法在訂閱模式中已有詳細介紹,在此不再詳細描述。
S710,向接收裝置發(fā)送消息。根據之前的判定結果,按照預定的方式發(fā)送消息。
S711,結束。
從圖5至圖7中可以看出,圖5所示的流程圖、圖7中的步驟S701、步驟S702、步驟 S703實質上相當于圖3與圖4中的步驟SlO與步驟S12。圖7中的步驟S704至步驟S711 與圖6所示的流程圖實質上相當于步驟S14的處理過程。
同時,從圖5至圖7中也可以看出,實施例三中各個裝置的工作流程實質上是本發(fā)明的實施二中介紹的各個模式下的消息路由過程。例如,執(zhí)行步驟S701、S702、S703、 S704、S706與S710的過程就是在執(zhí)行點對點模式的消息路由過程;執(zhí)行步驟S701、S702、 S703、S704、S705、S707、S709與S710的過程就是在執(zhí)行訂閱模式的消息路由過程;執(zhí)行步驟S701、S702、S703、S704、S705、S707、S708與S710的過程就是在執(zhí)行廣播模式的消息路由過程。
從以上的描述中,可以看出,本發(fā)明上述的實施例實現了如下技術效果消息發(fā)送裝置與消息接收裝置不需要直接連接,且消息發(fā)送裝置在發(fā)送消息時也不需要指定接收方的IP地址,當消息接收裝置數量增加或減少時,對消息發(fā)送裝置不會產生較大影響,克服了現有技術中的數據路由方法技術實現復雜,發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好,實現不夠方便靈活的問題。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種基于頻道的消息路由方法,其特征在于,包括消息接收步驟,接收消息發(fā)送裝置發(fā)送的消息,其中,所述消息包括數據部分以及消息頭,消息頭包含消息頻道標識信息;提取步驟,提取所述消息頻道標識信息,將所述數據部分存儲至與所述消息頻道標識信息對應的預定的消息頻道區(qū);轉發(fā)步驟,從預定的消息頻道區(qū)提取所述數據部分,并按照預定消息路由方式將所述數據部分轉發(fā)至消息接收裝置。
2.根據權利要求1所述的消息路由方法,其特征在于,所述提取步驟還包括提取所述消息頻道標識信息后,驗證所述消息發(fā)送裝置是否具有向所述消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限;當所述消息發(fā)送裝置具有向所述消息頻道標識信息對應的預定的消息頻道區(qū)發(fā)送消息的權限時,將所述數據部分存儲至與所述消息頻道標識信息對應的預定的消息頻道區(qū);當所述消息發(fā)送裝置不具有發(fā)送消息的權限時,放棄對所述消息執(zhí)行操作。
3.根據權利要求2所述的消息路由方法,其特征在于,所述消息頭還包括接收端標識信息以及廣播標識信息,所述預定消息路由方式包括點對點模式、訂閱模式以及廣播模式, 在所述轉發(fā)步驟中通過提取所述接收端標識信息以及所述廣播標識信息確定所述預定消息路由方式,其中,當所述接收端標識信息非空且廣播標識信息為第一信息時,所述預定消息路由方式為點對點模式;當所述接收端標識信息為空且廣播標識信息為第一信息時,所述預定消息路由方式為訂閱模式;當所述接收端標識信息為空且廣播標識信息為第二信息時,所述預定消息路由方式為廣播模式。
4.根據權利要求3所述的消息路由方法,其特征在于,當預定消息路由方式為所述點對點模式時,所述轉發(fā)步驟包括從預定的消息頻道區(qū)提取所述數據部分,并轉發(fā)至所述接收端標識信息對應的消息接收裝置。
5.根據權利要求3所述的消息路由方法,其特征在于,當預定消息路由方式為所述訂閱模式時,所述轉發(fā)步驟包括從存儲區(qū)提取所述預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取所述數據部分,按照預定轉發(fā)次序依次轉發(fā)至所述接收端列表對應的消息接收裝置。
6.根據權利要求5所述的消息路由方法,其特征在于,當存在在線的所述消息接收裝置時,所述預定轉發(fā)次序包括在線的所述消息接收裝置對應的接收端列表的排列次序。
7.根據權利要求5所述的消息路由方法,其特征在于,當所述消息接收裝置均不在線時,所述預定轉發(fā)次序包括所述接收端列表列出的第一個登錄的消息接收裝置。
8.根據權利要求3所述的消息路由方法,其特征在于,當所述預定消息路由方式為廣播模式且存在在線的所述消息接收裝置時,所述轉發(fā)步驟包括 從存儲區(qū)提取所述預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取所述數據部分,分別轉發(fā)至所述接收端列表對應的在線的消息接收裝置。
9.根據權利要求3所述的消息路由方法,其特征在于,當所述預定消息路由方式為廣播模式且存在不在線的所述消息接收裝置時,所述轉發(fā)步驟包括 從存儲區(qū)提取所述預定的消息頻道區(qū)對應的接收端列表;從預定的消息頻道區(qū)提取所述數據部分,在所述不在線的消息接收裝置登錄時將所述數據部分轉發(fā)給該裝置。
全文摘要
本發(fā)明提供了一種基于頻道的消息路由方法,包括消息接收步驟,接收消息發(fā)送裝置發(fā)送的消息,其中,消息包括數據部分以及消息頭,消息頭包含消息頻道標識信息;提取步驟,提取消息頻道標識信息,將數據部分存儲至與消息頻道標識信息對應的預定的消息頻道區(qū);轉發(fā)步驟,從預定的消息頻道區(qū)提取數據部分,并按照預定消息路由方式將數據部分轉發(fā)至消息接收裝置。在本發(fā)明中,消息發(fā)送裝置與消息接收裝置不需要直接連接,當消息接收裝置數量增加時,對消息發(fā)送裝置不會產生較大影響,克服了現有技術中的數據路由方法發(fā)送端和接收端直接連接,系統緊耦合,導致系統擴展性不好,實現不夠方便靈活的問題。
文檔編號H04L12/56GK102546354SQ201010579769
公開日2012年7月4日 申請日期2010年12月8日 優(yōu)先權日2010年12月8日
發(fā)明者樂以長, 張百春, 高超霖 申請人:北京大學, 北大方正集團有限公司, 方正國際軟件(北京)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
吉首市| 新竹县| 五莲县| 永定县| 宾阳县| 资源县| 容城县| 屏边| 连平县| 丁青县| 澄江县| 石屏县| 萨迦县| 宝鸡市| 秦皇岛市| 钦州市| 潜山县| 玉山县| 启东市| 个旧市| 昂仁县| 巨鹿县| 晋州市| 太原市| 汕头市| 织金县| 台北县| 会理县| 万安县| 县级市| 安国市| 瓦房店市| 陵水| 新巴尔虎左旗| 岳池县| 徐州市| 株洲县| 开原市| 阜宁县| 藁城市| 米易县|