一种消息传输方法、装置及电子设备与流程
- 国知局
- 2024-11-19 09:38:46
本发明涉及软件,特别是涉及一种消息传输方法、装置及电子设备。
背景技术:
1、在基于微前端架构创建的应用软件中,包含不同的子应用,不同的子应用可以用于实现不同的业务功能。不同的子应用中分别配置有各自的消息模块,各个消息模块均暴露给主应用,主应用中配置有消息总线,将所有子应用中的消息模块存储为一个列表,在应用之间需要传输消息数据时,可以基于主应用的消息总线,向需要接收消息的全部或部分应用传输消息数据。应用之间传输消息数据包括主应用向子应用传输消息数据,子应用向主应用传输消息数据以及子应用之间传输消息数据。
2、但此过程中,所传输的同样的消息数据会重复存储于接收该消息数据的多个不同应用的消息模块中,造成消息数据冗余的问题。
技术实现思路
1、本发明实施例的目的在于提供一种消息传输方法、装置及电子设备,以解决在消息传输的过程中消息数据冗余的问题。具体技术方案如下:
2、第一方面,本发明实施例提供了一种消息传输方法,应用于配置有微前端架构的电子设备,所述微前端架构由多个应用组成,所述应用包括主应用与子应用,所述主应用中配置有消息模块,所述主应用注册有多个子应用且所述消息模块挂载于子应用的根节点,所述消息模块中定义有消息数据以及用于处理所述消息数据的处理函数,所述方法包括:
3、所述应用中的第一应用调用所述处理函数处理并更新所述消息数据;
4、所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听到所述消息模块中的消息数据更新后,获取更新后的消息数据。
5、本发明的一个实施例中,所述主应用通过以下方式构建消息模块:
6、分别获取所述多个子应用的子消息模块的消息数据信息,其中,所述消息数据信息包括:子消息模块中定义的子消息数据以及用于处理所述子消息数据的子处理函数;
7、对所述消息数据信息进行合并与去重;
8、基于合并与去重后的消息数据信息构建消息模块,其中,所述消息模块中定义的消息数据为合并与去重后的子消息数据,所述消息模块中定义的用于处理所述消息数据的处理函数为合并与去重后的子处理函数。
9、本发明的一个实施例中,所述应用中预先设置有该应用关注的消息数据,所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听到所述消息模块中的消息数据更新后,获取更新后的消息数据,包括:
10、所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听预设的自身关注的消息数据更新后,获取更新后的该消息数据。
11、本发明的一个实施例中,所述消息模块中还配置有用于加载所述子应用的消息数据信息的消息数据信息加载函数,子应用的所述消息数据信息包括:该子应用的子消息模块中定义的子消息数据以及用于处理子消息数据的子处理函数,所述方法还包括:
12、在存在启动子应用的需求的情况下,调用所述消息数据信息加载函数加载该子应用的消息数据信息;
13、和/或
14、所述消息模块中还配置有用于替换所述子应用的消息数据信息的消息数据信息替换函数,所述方法还包括:
15、在存在更新子应用的消息数据信息的需求的情况下,调用所述消息数据信息替换模块,将所述消息模块中该子应用原本的消息数据信息替换为更新后的消息数据信息;
16、和/或
17、所述消息模块中还配置有用于卸载所述子应用的消息数据信息的消息数据信息卸载函数,所述方法还包括:
18、在存在卸载子应用的需求的情况下,调用所述消息数据信息卸载函数卸载所述消息模块中该子应用的消息数据信息;
19、和/或
20、所述消息模块中还配置有用于存储所述消息数据的消息持久化函数,所述方法还包括:
21、调用所述消息持久化函数存储所述消息模块中的消息数据。
22、第二方面,本发明实施例提供了一种电子设备,包括存储器,收发机,处理器:
23、存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于配置微前端架构,所述微前端架构由多个应用组成,所述应用包括主应用与子应用,所述主应用中配置有消息模块,所述主应用注册有多个子应用且所述消息模块挂载于子应用的根节点,所述消息模块中定义有消息数据以及用于处理所述消息数据的处理函数,所述处理器,还用于读取所述存储器中的计算机程序并执行以下操作:
24、控制所述应用中的第一应用调用所述处理函数处理并更新所述消息数据;
25、控制所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听到所述消息模块中的消息数据更新后,获取更新后的消息数据。
26、本发明的一个实施例中,所述处理器还用于控制所述主应用通过以下方式构建消息模块:
27、分别获取所述多个子应用的子消息模块的消息数据信息,其中,所述消息数据信息包括:子消息模块中定义的子消息数据以及用于处理所述子消息数据的子处理函数;
28、对所述消息数据信息进行合并与去重;
29、基于合并与去重后的消息数据信息构建消息模块,其中,所述消息模块中定义的消息数据为合并与去重后的子消息数据,所述消息模块中定义的用于处理所述消息数据的处理函数为合并与去重后的子处理函数。
30、本发明的一个实施例中,所述控制所述应用中预先设置有该应用关注的消息数据,所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听到所述消息模块中的消息数据更新后,获取更新后的消息数据,具体包括:
31、控制所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听预设的自身关注的消息数据更新后,获取更新后的该消息数据。
32、本发明的一个实施例中,所述消息模块中还配置有用于加载所述子应用的消息数据信息的消息数据信息加载函数,子应用的所述消息数据信息包括:该子应用的子消息模块中定义的子消息数据以及用于处理子消息数据的子处理函数,所述处理器还用于:
33、在存在启动子应用的需求的情况下,调用所述消息数据信息加载函数加载该子应用的消息数据信息;
34、和/或
35、所述消息模块中还配置有用于替换所述子应用的消息数据的消息数据信息替换函数,所述处理器还用于:
36、在存在更新子应用的消息数据信息的需求的情况下,调用所述消息数据信息替换模块,将所述消息模块中该子应用原本的消息数据信息替换为更新后的消息数据信息;
37、和/或
38、所述消息模块中还配置有用于卸载所述子应用的消息数据信息的消息数据信息卸载函数,所述处理器还用于:
39、在存在卸载子应用的需求的情况下,调用所述消息数据信息卸载函数卸载所述消息模块中该子应用的消息数据信息;
40、和/或
41、所述消息模块中还配置有用于存储所述消息数据的消息持久化函数,所述处理器还用于:
42、调用所述消息持久化函数存储所述消息模块中的消息数据。
43、第三方面,本发明实施例提供了一种消息传输装置,应用于配置有微前端架构的电子设备,所述微前端架构由多个应用组成,所述应用包括主应用与子应用,所述主应用中配置有消息模块,所述主应用注册有多个子应用且所述消息模块挂载于子应用的根节点,所述消息模块中定义有消息数据以及用于处理所述消息数据的处理函数,所述装置包括:
44、数据更新单元,用于控制所述应用中的第一应用调用所述处理函数处理并更新所述消息数据;
45、数据监听单元,用于控制所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听到所述消息模块中的消息数据更新后,获取更新后的消息数据。
46、本发明的一个实施例中,上述主应用通过以下模块构建单元构建消息模块,所述模块构建单元,用于:
47、分别获取所述多个子应用的子消息模块的消息数据信息,其中,所述消息数据信息包括:子消息模块中定义的子消息数据以及用于处理所述子消息数据的子处理函数;
48、对所述消息数据信息进行合并与去重;
49、基于合并与去重后的消息数据信息构建消息模块,其中,所述消息模块中定义的消息数据为合并与去重后的子消息数据,所述消息模块中定义的用于处理所述消息数据的处理函数为合并与去重后的子处理函数。
50、本发明的一个实施例中,上述应用中预先设置有该应用关注的消息数据,上述数据监听单元,具体用于:
51、控制所述应用中除所述第一应用外的第二应用监听所述消息模块,在监听预设的自身关注的消息数据更新后,获取更新后的该消息数据。
52、本发明的一个实施例中,所述消息模块中还配置有用于加载所述子应用的消息数据信息的消息数据信息加载函数,子应用的所述消息数据信息包括:该子应用的子消息模块中定义的子消息数据以及用于处理子消息数据的子处理函数,所述装置还包括:
53、子应用加载单元,用于在存在启动子应用的需求的情况下,调用所述消息数据信息加载函数加载该子应用的消息数据信息;
54、和/或
55、所述消息模块中还配置有用于替换所述子应用的消息数据信息的消息数据信息替换函数,所述装置还包括:
56、子应用替换单元,用于在存在更新子应用的消息数据信息的需求的情况下,调用所述消息数据信息替换模块,将所述消息模块中该子应用原本的消息数据信息替换为更新后的消息数据信息;
57、和/或
58、所述消息模块中还配置有用于卸载所述子应用的消息数据信息的消息数据信息卸载函数,所述装置还包括:
59、子应用卸载单元,用于在存在卸载子应用的需求的情况下,调用所述消息数据信息卸载函数卸载所述消息模块中该子应用的消息数据信息;
60、和/或
61、所述消息模块中还配置有用于存储所述消息数据的消息持久化函数,所述装置还包括:
62、数据存储单元,用于调用所述消息持久化函数存储所述消息模块中的消息数据。
63、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
64、第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法。
65、本发明实施例有益效果:
66、本发明实施例提供了一种消息传输方法,应用于配置有微前端架构的电子设备,其中微前端架构由多个应用组成,上述应用中包含主应用和子应用,主应用中配置有消息模块,该主应用注册有多个子应用并且消息模块挂载于子应用的根节点。消息模块中定义有消息数据以及用于处理消息数据的处理函数。微前端架构中的第一应用能够调用处理函数更新消息模块中的消息数据,由于消息模块由主应用构建,且挂载于子应用的根节点,因此其他应用,包括主应用和子应用均能够监听到消息模块中消息数据的更新情况,在确定消息数据发生更新后能够获得更新后的消息数据,从而实现应用间的消息数据传输。包括主应用向子应用传输消息数据、子应用与子应用间传输消息数据以及子应用向主应用传输消息数据。
67、由以上可见,本发明实施例中第一应用调用一次处理函数便能够完成消息数据的处理和更新,并且其他应用能够直接获得更新后的消息数据,实现消息数据在应用间的传输。此过程中消息数据仅在消息模块中存储一份,因此可以避免消息数据的重复存储,解决消息数据冗余的问题。另外,仅在主应用中配置一个消息模块可以节省配置消息模块所需的资源。再者,相关技术中往往是一个应用先将原始数据传输至其他应用,由接收到原始数据的应用分别调用处理函数对原始数据分别进行处理与更新,得到更新后的消息数据。也就是各个应用需要对原始数据进行多次相同的处理,多次相同的处理会造成大量的资源消耗,但本发明实施例中仅有第一应用调用一次处理函数,便能够将更新后的消息数据传输至其他应用,其他应用无需再次调用处理函数进行数据处理,因此本发明实施例中消息数据的处理逻辑较为简单,能够节省数据处理使用的资源,缩短消息传输的响应时长。
本文地址:https://www.jishuxx.com/zhuanli/20241118/329614.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。