本發明涉及計算機,尤其涉及一種消息傳輸系統、方法、設備和存儲介質。
背景技術:
1、在應用程序(application,簡稱app)中,各組件之間的消息傳輸是確保應用程序高效運行的關鍵。在實際中,不同組件之間的消息傳輸可以通過消息總線(message?bus)實現。
2、在實際應用中,在不同組件之間傳輸的消息可以借助消息總線提供的不同傳輸通道進行傳輸,并且不同的通道可以用于傳輸不同類型的消息。然而,這樣可能容易出現因通道識別錯誤而導致消息被錯誤地發送到不正確的通道的問題,從而降低消息傳輸的準確性。
3、則基于上述描述,如何提高消息傳輸的準確性就成為亟待解決的技術問題。
技術實現思路
1、有鑒于此,本發明實施例提供一種消息傳輸系統、方法、設備和存儲介質,用以提高消息傳輸的準確性。
2、第一方面,本發明實施例提供一種消息傳輸系統,包括:消息總線、消息處理組件、數據存儲組件、作為發布者的第一組件以及作為訂閱者的第二組件;
3、所述第一組件,用于確定第一聲明信息;根據所述第一聲明信息中的第一類標識,創建具有所述第一類標識的第一類實例;生成封裝有所述第一類實例的第一消息對象;
4、所述消息處理組件,用于執行內聯函數,以識別所述第一類實例具有的所述第一類標識;
5、所述消息總線,用于獲取所述第一消息對象;若不存在與所述第一類標識對應的消息通道,則將所述第一類標識作為通道標識,創建與所述第一類標識對應的第一消息通道;將所述第一消息對象存儲到與所述第一消息通道對應的數據存儲組件中;
6、所述第二組件,用于利用所述第一消息通道從所述數據存儲組件中獲取所述第一消息對象。
7、第二方面,本發明實施例提供一種消息傳輸方法,包括:
8、獲取封裝有類實例的消息對象,所述類實例是所述第一組件根據聲明信息中的類標識創建的;
9、執行所述消息總線集成器中的內聯函數,以識別所述類實例具有的所述類標識;
10、若不存在與所述類標識對應的消息通道,則將所述類標識作為通道標識,創建與所述類標識對應的消息通道;
11、將所述消息對象存儲到與所述消息通道對應的數據存儲組件中,以由所述第二組件利用所述消息通道從所述數據存儲組件中獲取所述消息對象,所述數據存儲組件包含在所述消息總線集成器中。
12、第三方面,本發明實施例提供一種消息傳輸裝置,包括:
13、獲取模塊,用于獲取封裝有類實例的消息對象,所述類實例是所述第一組件根據聲明信息中的類標識創建的;
14、執行模塊,用于執行所述消息總線集成器中的內聯函數,以識別所述類實例具有的所述類標識;
15、創建模塊,用于若不存在與所述類標識對應的消息通道,則將所述類標識作為通道標識,創建與所述類標識對應的消息通道;
16、存儲模塊,用于將所述消息對象存儲到與所述消息通道對應的數據存儲組件中,以由所述第二組件利用所述消息通道從所述數據存儲組件中獲取所述消息對象,所述數據存儲組件包含在所述消息總線集成器中。
17、第四方面,本發明實施例提供一種電子設備,包括處理器和存儲器,所述存儲器用于存儲一條或多條計算機指令,其中,所述一條或多條計算機指令被所述處理器執行時實現上述第二方面中的消息傳輸方法。該電子設備還可以包括通信接口,用于與其他設備或通信系統通信。
18、第五方面,本發明實施例提供了一種非暫時性機器可讀存儲介質,所述非暫時性機器可讀存儲介質上存儲有可執行代碼,當所述可執行代碼被電子設備的處理器執行時,使所述處理器至少可以實現如上述第二方面中的消息傳輸方法。
19、第六方面,本發明實施例提供了一種計算機程序產品,所述計算機程序產品包括計算機程序或指令,當所述計算機程序或指令被處理器執行時,致使所述處理器能實現如上述第二方面所述的消息傳輸方法。
20、本發明實施例提供的消息傳輸系統中,該系統包括消息總線、消息處理組件、數據存儲組件、作為發布者的第一組件以及作為訂閱者的第二組件。其中,第一組件可以先確定第一聲明信息,并根據第一聲明信息中的第一類標識,創建具有第一類標識的第一類實例,再生成封裝有第一類實例的第一消息對象。然后,消息處理組件可以執行內聯函數,以識別第一類實例具有的第一類標識。之后,消息總線可以獲取第一消息對象。若消息總線中不存在與第一類標識對應的消息通道,則消息總線可以將第一類標識作為通道標識,創建與第一類標識對應的第一消息通道,并將第一消息對象存儲到與第一消息通道對應的數據存儲組件中。最終,第二組件可以利用該第一消息通道從數據存儲組件中獲取第一消息對象。
21、可見,上述方案中,借助消息處理組件先識別出第一類實例本身具有的第一類標識,之后,再通過消息總線直接將該第一類標識作為通道標識,最終消息對象可以從具有此通道標識的消息通道中進行傳輸。相比于從類實例中先提取字符串標識,再對類實例額外添加字符串標識,并將字符串標識作為通道標識的方案,該方案中的消息處理組件能夠更容易且更準確地從類實例中提取出類標識,這樣能夠保證消息對象可以在正確的通道進行傳輸,避免了因字符串標識不規范而導致消息對象在錯誤的通道進行傳輸的問題,從而提高消息傳輸的準確性。
1.一種消息傳輸系統,其特征在于,部署在應用程序中,包括:消息總線、消息處理組件、數據存儲組件、作為發布者的第一組件以及作為訂閱者的第二組件;
2.根據權利要求1所述的系統,其特征在于,所述數據存儲組件,用于響應于所述第一消息對象的存儲,向所述第二組件發送消息更新通知;
3.根據權利要求1所述的系統,其特征在于,所述消息總線,用于獲取所述第一組件生成的注冊事件,以對所述第一組件進行注冊。
4.根據權利要求3所述的系統,其特征在于,所述消息處理組件,用于執行擴展函數,以為第一目標對象添加第二類實例,所述第一目標對象包括所述注冊事件和/或所述第一消息對象;
5.根據權利要求1所述的系統,其特征在于,所述第二組件,用于確定第二聲明信息;根據所述第二聲明信息中的第二類標識,創建具有所述第二類標識的第三類實例;生成封裝有所述第三類實例的第二消息對象;
6.根據權利要求5所述的系統,其特征在于,所述消息總線,用于獲取所述第二組件生成的注冊事件,以對所述第二組件進行注冊。
7.根據權利要求6所述的系統,其特征在于,所述消息處理組件,用于執行擴展函數,以為第二目標對象添加第四類實例,所述第二目標對象包括所述注冊事件和/或所述第二消息對象;
8.一種消息傳輸方法,其特征在于,應用于部署在應用程序中的消息總線集成器,所述應用程序中還部署有作為發布者的第一組件以及作為訂閱者的第二組件,所述方法包括:
9.一種電子設備,其特征在于,包括:存儲器、處理器;其中,所述存儲器上存儲有可執行代碼,當所述可執行代碼被所述處理器執行時,使所述處理器執行如權利要求8所述的消息傳輸方法。
10.一種非暫時性機器可讀存儲介質,其特征在于,所述非暫時性機器可讀存儲介質上存儲有可執行代碼,當所述可執行代碼被電子設備的處理器執行時,使所述處理器執行如權利要求8所述的消息傳輸方法。