CN115827275A - 消息同步方法、电子设备、存储介质及计算机程序产品 - Google Patents
消息同步方法、电子设备、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN115827275A CN115827275A CN202211609500.6A CN202211609500A CN115827275A CN 115827275 A CN115827275 A CN 115827275A CN 202211609500 A CN202211609500 A CN 202211609500A CN 115827275 A CN115827275 A CN 115827275A
- Authority
- CN
- China
- Prior art keywords
- message
- subscription
- broadcast
- main body
- differences
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种消息同步方法,包括:获取各个订阅主体的包含消息标识的订阅指令,其中订阅指令用于表征订阅主体待同步的事件信息;响应于存在消息标识的广播消息,分别判断订阅主体和各个广播消息的发出者之间的属性差异,其中广播消息为发出者执行目标事件所产生的事件信息,属性差异包括技术栈差异、构建引擎差异和无差异;根据属性差异,触发对应的通知机制将广播消息同步至各个订阅主体。本公开还提供一种电子设备、存储介质及计算机程序产品。
Description
技术领域
本公开涉及一种多技术栈的消息同步方法、电子设备、存储介质及计算机程序产品。
背景技术
目前,在应用程序(APP)或者网页的开发过程中,大部分研发者会采用多种技术栈进行混合开发。对于混合有多种技术栈的APP或者网页而言,当某页面在执行一个事件时,准确、高效地将该事件的相关消息同步至APP或者网页的其他页面,对于提升用户体验、提高产品性能等方面具有重要意义。
假设有如下场景:在利用技术栈Native搭建的A页面中打开利用技术栈Flutter搭建的B页面,在B页面中打开利用技术栈Flutter搭建的C页面,在C页面中打开利用技术栈5H搭建的D页面,在D页面执行某个事件。相关技术中,只能将D页面执行的事件的相关消息传递给C页面,再由C页面将事件的相关消息传递给B页面,最后由B页面传递给A页面;这样逐级的点对点传递方式,链路长、消息交互过程中的计算过程繁琐,并且只能是一对一的传递,传递效率较低。另外,虽然B页面和C页面都是利用技术栈Flutter搭建的,但是若搭建二者时采用不同的引擎,那么将无法执行消息传递。
发明内容
本公开提供了一种消息同步方法、电子设备、存储介质及计算机程序产品。
根据本公开的一个方面提供了一种消息同步方法,可包括:获取各个订阅主体的包含消息标识的订阅指令,其中所述订阅指令用于表征所述订阅主体待同步的事件信息;响应于存在所述消息标识的广播消息,分别判断所述订阅主体和各个所述广播消息的发出者之间的属性差异,其中所述广播消息为所述发出者执行目标事件所产生的事件信息,所述属性差异包括技术栈差异、构建引擎差异和无差异;根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体。
在一些实施方式中,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:当所述属性差异为技术栈差异时,利用消息插件中心进行搭建语言的切换,以将所述广播消息由所述发出者对应的搭建语言转换为所述订阅主体对应的搭建语言,其中所述技术栈差异为所述发出者的搭建语言和所述订阅主体的搭建语言不同;将进行搭建语言切换之后的广播消息同步至所述订阅主体。
在一些实施方式中,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:当所述属性差异为构建引擎差异时,利用消息插件中心进行多引擎处理,以将经过多引擎处理之后的所述广播消息发送至所述订阅主体的消息通知中心,以同步至所述订阅主体,其中所述构建引擎差异为所述发出者和所述订阅主体具有相同的搭建语言,各个所述搭建语言对应的构建引擎不同。
在一些实施方式中,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:当所述属性差异为无差异时,将所述广播消息发送至所述订阅主体对应的消息通知中心,其中所述订阅主体和所述发出者共享消息通知中心;以及由所述消息通知中心将所述广播消息同步至所述订阅主体。
在一些实施方式中,在所述获取各个订阅主体的包含消息标识的订阅指令之后,包括:根据订阅指令的下达时刻,依时序构建或更新同步列表,其中所述同步列表包括下达所述订阅指令的多个所述订阅主体。
在一些实施方式中,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:在所述同步列表中筛选对应的所述属性差异为无差异的多个订阅主体,将所述广播消息依时序逐一同步至各个所述订阅主体;以及在所述同步列表中筛选对应的所述属性差异为所述技术栈差异和所述构建引擎差异的多个订阅主体,将所述广播消息依时序逐一同步至各个所述订阅主体。
在一些实施方式中,在所述响应于存在所述消息标识的广播消息,分别判断所述订阅主体和各个所述广播消息的发出者之间的属性差异之前,包括:响应于所述发出者对应的技术栈为特定栈的判断结果,利用转换协议将所述发出者的广播消息发送至所述特定栈的容器中;以及利用所述目标栈对应的通知机制将所述广播消息同步至各个所述订阅主体。
根据本公开的另一个方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现如上述任一实施方式所述的消息同步方法。
根据本公开的又一个方面提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上述任一实施方式所述的消息同步方法。
根据本公开的再一个方面提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现上述任一实施方式所述的消息同步方法。
附图说明
附图示出了本公开的示例性实施方式,并与其说明一起用于解释本公开的原理,其中包括了这些附图以提供对本公开的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。
图1为本公开示例性实施方式的消息同步方法流程图。
图2为本公开示例性实施方式的消息同步过程示意图。
图3为本公开示例性实施方式的消息同步的时序图。
图4为本公开示例性实施方式的消息同步装置框图。
附图标记说明
1000 消息同步装置
1002 订阅指令获取模块
1004 属性差异判断模块
1006 消息同步模块
1100 总线
1200 处理器
1300 存储器
1400 其他电路。
具体实施方式
下面结合附图和实施方式对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本公开的技术方案。
除非另有说明,否则示出的示例性实施方式/实施例将被理解为提供可以在实践中实施本公开的技术构思的一些方式的各种细节的示例性特征。因此,除非另有说明,否则在不脱离本公开的技术构思的情况下,各种实施方式/实施例的特征可以另外地组合、分离、互换和/或重新布置。
本文使用的术语是为了描述具体实施例的目的,而不是限制性的。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个(种、者)”和“所述(该)”也意图包括复数形式。此外,当在本说明书中使用术语“包含”和/或“包括”以及它们的变型时,说明存在所陈述的特征、整体、步骤、操作、部件、组件和/或它们的组,但不排除存在或附加一个或更多个其它特征、整体、步骤、操作、部件、组件和/或它们的组。还要注意的是,如这里使用的,术语“基本上”、“大约”和其它类似的术语被用作近似术语而不用作程度术语,如此,它们被用来解释本领域普通技术人员将认识到的测量值、计算值和/或提供的值的固有偏差。
图1为本公开示例性实施方式的消息同步方法流程图。下面将结合图1对消息同步方法S100进行详细阐述。
步骤S102,获取各个订阅主体的包含消息标识的订阅指令。
其中,订阅主体为广播消息的接收者,其根据自己感兴趣或者需要广播消息设定对应的订阅指令。订阅主体是任一平台中的任一页面,构建订阅主体的技术栈可采用的搭建语言包括Native、Flutter和H5中的一种。
平台可为移动端应用程序(APP)、桌面端APP或者网页等,订阅主体和广播消息的发出者之间可采用多种不同的搭建语言进行构建;二者在采用同一种搭建语言时,也可对应不同的构建引擎。基于此,在消息同步过程中,发出者和订阅主体之间不限于同平台或者跨平台。
订阅指令用于表征订阅主体待同步的事件信息。订阅标识为待同步消息的标识,用于指示具有共性的一类待同步消息,因此多种待同步消息可对应相同订阅标识,消息通知中心识别到广播消息存在具有相同订阅标识的广播消息时,会将具有该订阅标识的广播消息同步至订阅主体,以便订阅主体根据广播消息进行消息同步或者数据更新。例如,订阅标识为nameA,那么具有nameA标识的广播消息均可同步至订阅主体,但是各个广播消息的具体内容不一定相同。其中,具有订阅标识的广播消息即为待同步消息。
广播消息指的是发出者执行目标事件所产生的事件信息,例如发出者为编辑页面,那么其修改昵称时,会产生新昵称相关事件信息,那么将该事件消息同步至包含昵称的展示页面,展示页面则同步更新昵称。其中,昵称即为订阅标识。
步骤S104,响应于存在消息标识的广播消息,分别判断订阅主体和各个广播消息的发出者之间的属性差异。
其中,发出者指的是执行目标事件的主体,可为平台中的任一页面,例如编辑页面编辑昵称的场景中,发出者为编辑页面,目标事件为编辑昵称。
属性差异包括技术栈差异、构建引擎差异和无差异等。属性用于表征订阅主体或者发出者在其页面构建过程中的所用的技术栈对应的搭建语言、以及搭建语言对应的构建引擎等,每个页面均有唯一的属性。那么,订阅主体和发出者也分别存在对应的属性,当二者在搭建过程中所用的技术栈对应的搭建语言不同时,例如订阅主体用Flutter语言所搭建,发出者用Active语言所搭建,此时二者的属性差异为技术栈差异;当二者在搭建过程中采用相同的搭建语言,例如Flutter语言,但是二者在搭建过程中采用的构建引擎不同,例如发出者用引擎A构建页面展示图案,订阅主体用引擎B构建页面展示图案,此时二者的属性差异为构建引擎差异;若二者采用相同的搭建语言,并且采用相同的构建引擎,例如发出者是在订阅主体的基础上直接利用其搭建语言和构建引擎所构建,那么二者的属性差异为无差异。
由于各种搭建语言和构建引擎的特性,针对不同的属性差异,当识别到广播消息有消息标识时,会触发不同的通知机制。
步骤S106,根据属性差异,触发对应的通知机制将广播消息同步至各个订阅主体。
其中,通知机制适应于不同的搭建语言和构建引擎的特性,进行语言切换和通道转化,以实现将广播消息同步至与发出者具有相同属性或者不同属性的订阅主体,为混合技术栈场景下的消息同步提供技术支持。
图2为本公开示例性实施方式的消息同步过程示意图。
如图2所示,Flutter侧订阅主体1和Native侧订阅主体2分别向消息通知中心发送具有消息标识nameA的订阅指令,Native侧订阅主体3向消息通知中心发送具有消息标识nameB的订阅指令。
那么,在Flutter侧的发出者执行Flutter事件并且向消息通知中心发送(post)具有消息标识nameA的Flutter事件对应的广播消息时,以及在Native侧的发出者执行Native事件并且向消息通知中心发送具有消息标识nameB的Native事件对应的广播消息,会在消息通知中心形成同步列表,例如:postFlutterToFlutter(即由Flutter侧的发出者广播至采Flutter侧的订阅主体),postFlutterToNative(即由Flutter侧的发出者广播至Native侧的订阅主体),postNativeToNative(即由Native侧的发出者广播至Native侧的订阅主体),postNativeToFlutter(即由Native侧的发出者广播至Flutter侧的订阅主体)等。
进一步地,根据发出者和订阅主体之间不同的属性差异,触发不同的通知机制向订阅者进行消息分发,例如:由消息通知中心先将具有nameA标识的广播消息由Flutter侧的发送者广播(broadcast)至Flutter侧的订阅主体1;再由消息通知中心将具有nameA标识的广播消息由Flutter侧的发送者广播至Native侧的订阅主体2。由于订阅消息标识为nameB的订阅主体只有一个,那么消息通知中心直接将具有消息标识nameB的广播消息由Native侧的发送者广播至Native侧的订阅主体3。
其中,Native侧表示发出者或者订阅主体的搭建语言为Native,Flutter侧表示发出者或者订阅主体的搭建语言为Flutter。
广播消息由消息通知中心根据同步列表分发至各个订阅主体时,在广播消息到达订阅主体之后,消息通知中心即可执行对下一个订阅主体的消息同步工作,不需要等待各个订阅主体对广播消息处理完成;而相关技术中,是由接收者之间进行点对点的消息发送,则需要在当前接收者对广播消息处理完成之后,再由当前接收者将广播消息传递给下一个接收者,相比之下,本公开具有更高效的传播机制。
消息通知中心具有订阅、广播消息发送、取消订阅等三种功能。不同的搭建语言对应不同的消息通知中心。当发送者关闭页面时,订阅主体将被动取消订阅,当然也可根据需求主动取消订阅。
在一些实施方式中,当发出者和订阅主体之间的属性差异为技术栈差异时,步骤S106的具体执行步骤可包括:利用消息插件中心进行搭建语言的切换,以将广播消息由发出者对应的搭建语言转换为订阅主体对应的搭建语言,其中技术栈差异为发出者的搭建语言和订阅主体的搭建语言不同;将进行搭建语言切换之后的广播消息同步至订阅主体。
其中,技术栈差异为发出者的搭建语言和订阅主体的搭建语言不同,可参见上述。
例如,当订阅主体的搭建语言Native时,由Flutter语言搭建的发出者发送一个消息标识为nameA的广播消息,那么该广播消息将发送至Flutter对应的消息通知中心,由该消息通知中心选择对应的通道将该广播消息发送至消息插件中心,利用消息插件中心进行搭建语言的切换,进而将转换成Native语言的广播消息发送至Native对应的消息通知中心,由Native对应的消息通知中心将该消息发送至订阅指令包含消息标识nameA的各个由Native语言搭建的订阅主体。
再例如,当订阅主体的搭建语言Flutter时,由Native语言搭建的发出者发送一个消息标识为nameA的广播消息,那么该广播消息将发送至Native对应的消息通知中心,由该消息通知中心将该广播消息转发至消息插件中心,利用消息插件中心进行搭建语言的切换,进而将转换成Flutter语言的广播消息利用对应的通道发送至Flutter对应的消息通知中心,由Flutter对应的消息通知中心将该消息发送至订阅指令包含消息标识nameA的各个由Flutter语言搭建的订阅主体。
其中,消息插件中心用于解决各个构建引擎、各个搭建语言之间的通信问题,其内部包含各种构建引擎、各种搭建语言的相关信息,可以执行语言的切换。
在一些实施方式中,当属性差异为构建引擎差异时,步骤S106包括:利用消息插件中心进行多引擎处理,以将经过多引擎处理之后的广播消息发送至订阅主体的消息通知中心,以同步至订阅主体。
其中,构建引擎差异为发出者和订阅主体具有相同的搭建语言,但是各个搭建语言对应的构建引擎不同。
例如,当订阅主体和发出者的搭建语言均为Flutter时,由发出者发出一个消息标识为nameA的广播消息,那么该广播消息将发送至Flutter对应的消息通知中心,由该消息通知中心将该广播消息发送至消息插件中心;由消息插件中心对该广播消息进行多引擎处理,选择对应的消息通道将进行多引擎处理之后的广播消息发送至订阅主体对应的Flutter消息通知中心;在由订阅主体对应的Flutter消息通知中心将广播消息广播给订阅指令包含消息标识nameA的各个由Flutter语言搭建的订阅主体。
在一些实施方式中,当属性差异为无差异时,步骤S106包括:将广播消息发送至订阅主体对应的消息通知中心;以及由消息通知中心将广播消息同步至订阅主体。
其中,订阅主体和发出者共享消息通知中心
例如,当订阅主体和发出者的搭建语言均为Flutter,且二者之间共用相同的构建引擎,那么当发出者发送一个消息标识为nameA的广播消息时,由发出者的消息通知中心接收该广播消息;由发出者的消息通知中心直接将该广播消息同步至订阅指令包含消息标识nameA的订阅主体。
在一些实施方式中,在步骤S102之后,还包括:根据订阅指令的下达时刻,依时序构建或更新同步列表,其中同步列表包括下达订阅指令的多个订阅主体。
对于一个广播消息,消息通知中心需要发送给多个订阅主体,因此需要构建同步列表,根据订阅的时间顺序逐一将广播消息发送至对应的订阅主体。在广播消息的发送过程中,消息通知中心只需要将发广播消息发送至订阅主体即完成一次发送任务,然后可立刻执行对后面的订阅主体的广播消息发送任务;然而,相关技术则由接受者进行消息发送,需要等待接受者处理完消息之后,才能执行消息传递任务。与相关技术相比,本公开具有更高效地消息发送任务。
在一些实施方式中,步骤S106还包括:在同步列表中筛选对应的属性差异为无差异的多个订阅主体,将广播消息依时序逐一同步至各个订阅主体;以及在同步列表中筛选对应的属性差异为技术栈差异和构建引擎差异的多个订阅主体,将广播消息依时序逐一同步至各个订阅主体。
换言之,由于各个订阅主体与发出者的属性差异不同,根据属性差异设定消息发送优先级,以无差异为最高优先级,在同步列表中筛选属性差异为无差异的多个订阅主体,优先将广播消息依序发送给无差异的订阅主体。进一步地,再将广播消息发给属性差异为技术栈差异和构建引擎差异的多个订阅主体。当然,在将广播消息依序发送给无差异的订阅主体之后,将广播消息发给属性差异为构建引擎差异的多个订阅主体,最后将广播消息发给属性差异为技术栈差异的多个订阅主体。
在一些实施方式中,在步骤S104之前,还包括:响应于发出者对应的技术栈为特定栈的判断结果,利用转换协议将发出者的广播消息发送至特定栈的容器中;以及利用目标栈对应的通知机制将广播消息同步至各个订阅主体。
例如,当发出者的技术栈对应的搭建语言为H5时,设定该技术栈为特定栈。利用转换协议将广播消息由发送者发送至Native对应的容器中,其中Native语言即为目标栈。进而利用Native相关的消息发送方式执行后续流程,不再赘述。
容器包括运行各种移动端APP、桌面端APP、网页的系统,例如IOS或者安卓。
由于技术栈包括很多种,为了提高本方法的普适性,设置该步骤可将任意技术栈转换成可适用于本方法的技术栈,进而实现消息同步方法S100的普适性。
图3为本公开示例性实施方式的消息同步的时序图。下面结合图3对本公开的多种情况的消息同步过程进行示例性阐述。
图3中,s为消息同步的子进程,包括订阅/处理消息、Native发送通知、Flutter发送通知以及H5发送通知。Native业务为利用Native语言搭建的页面,Flutter业务为利用Flutter语言搭建的页面。Native OneNotification为Native侧消息通知中心,FlutterOneNotification为Flutter侧消息通知中心。Plugin Manager OneNotificationPlugin为消息插件中心。
Native业务订阅通知A,即表示Native业务下达一个包含消息标识为A的订阅指令,进一步地,将该Native业务加入其对应的Native消息通知中心中的同步列表。同样地,Flutter业务下达一个包含消息标识为A的订阅指令,进一步地,将该Flutter业务加入其对应的Flutter消息通知中心中的同步列表。
当属性差异为无差异的Native业务向其对应的Native消息通知中心发送一个订阅通知A时,由于存在消息标识A,则优先将通知A发送至Native业务,由接收通知A,并处理事件,例如更新页面数据等。
当属性差异为无差异的Flutter业务向其对应的Flutter消息通知中心发送一个订阅通知A时,由于存在消息标识A,则优先将通知A发送至Flutter业务,由接收通知A,并处理事件,例如更新页面数据等。
当Native页面作为发出者发送通知A时,由其对应的Native消息通知中心接收该通知A,并将其转发至对应于Native业务的Native消息通知中心,由其将该通知A发送至订阅有消息标识A的Native业务。另外,另一Native页面对应的Native消息通知中心将该通知A转发到消息插件中心Plugin,以利用消息插件中心对该通知A进行语言切换,并利用多引擎处理等方式,由Native的官方消息通道method channel转发给对应的Flutter业务的Flutter消息通知中心,由各个Flutter消息通知中心分发至订阅有消息标识A的各个Flutter业务,最终由Flutter业务根据通知A对各自页面数据进行更新。
当Flutter页面作为发出者发送通知A时,由其对应的Flutter消息通知中心接收该通知A,并将其按照Flutter接收流程转发至对应于Flutter业务的Flutter消息通知中心,由其将该通知A发送至订阅有消息标识A的Flutter业务。另外,另一Flutter页面对应的Flutter消息通知中心利用消息通道将该通知A转发到消息插件中心,消息插件中心对该通知A进行语言切换,并转发至Native消息通知中心,由Native消息通知中心利用Native接收流程向Native业务对应的消息通知中心发送通知A,最终由Native业务对应的消息通知中心将通知A同步至Native业务;消息插件中心还利用多引擎处理等方式,将通知A分发至各个Flutter消息通知中心,由各个Flutter消息通知中心分发至订阅有消息标识A的各个Flutter业务,最终由Flutter业务根据通知A对各自页面数据进行更新。
当发送者的技术栈对应的搭建语言为H5时,在Native对应的容器中进行转换协议JSBridge的注册,该转换协议支持H5和Native之间的通信。H5通过JSBridge发送通知A至Native,
由H5发送通知A,利用转换协议JSBridge将通知A发送至Native对应的容器中,即由Native消息通知中心将通知A发送至对应的各个订阅的消息标识为A的订阅主体,具体过程与Native页面的发送通知相同,不在赘述。
本公开的消息同步方法,通过设置消息通知中心进行待同步消息的订阅、发送等操作,避免了相关技术中由接收者在进行消息处理之后点对点转发消息的情况,提高了消息同步的效率。另外,设置消息插件中心,对各种技术栈进行语言转换或者多引擎处理,磨平平台差异、技术栈差异、引擎差异等,实现跨平台、混合技术栈、多引擎等场景的消息同步的目的。
图4为本公开示例性实施方式的消息同步装置框图。如图4所示,本公开提供了这样一种消息同步装置1000,可包括:订阅指令获取模块1002,用于获取各个订阅主体的包含消息标识的订阅指令,其中订阅指令用于表征订阅主体待同步的事件信息;属性差异判断模块1004,用于响应于存在消息标识的广播消息,分别判断订阅主体和各个广播消息的发出者之间的属性差异,其中广播消息为发出者执行目标事件所产生的事件信息,属性差异包括技术栈差异、构建引擎差异和无差异;消息同步模块1006用于根据属性差异,触发对应的通知机制将广播消息同步至各个订阅主体。
本公开的消息同步装置1000的各个模块是用于实现消息同步方法的各个步骤而设置的,其原理和实现过程与前文相同,不在赘述。
该装置1000可以包括执行上述流程图中各个或几个步骤的相应模块。因此,可以由相应模块执行上述流程图中的每个步骤或几个步骤,并且该装置可以包括这些模块中的一个或多个模块。模块可以是专门被配置为执行相应步骤的一个或多个硬件模块、或者由被配置为执行相应步骤的处理器来实现、或者存储在计算机可读介质内用于由处理器来实现、或者通过某种组合来实现。
该硬件结构可以利用总线架构来实现。总线架构可以包括任何数量的互连总线和桥接器,这取决于硬件的特定应用和总体设计约束。总线1100将包括一个或多个处理器1200、存储器1300和/或硬件模块的各种电路连接到一起。总线1100还可以将诸如外围设备、电压调节器、功率管理电路、外部天线等的各种其它电路1400连接。
总线1100可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条连接线表示,但并不表示仅有一根总线或一种类型的总线。
本公开的消息同步装置,通过设置消息通知中心进行待同步消息的订阅、发送等操作,避免了相关技术中由接收者在进行消息处理之后点对点转发消息的情况,提高了消息同步的效率。另外,设置消息插件中心,对各种技术栈进行语言转换或者多引擎处理,磨平平台差异、技术栈差异、引擎差异等,实现跨平台、混合技术栈、多引擎等场景的消息同步的目的。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本公开中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本说明书而言,“可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储
器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装5置,以及便携式只读存储器(CDROM)。另外,可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在存储器中。
应当理解,本公开的各部分可以用硬件、软件或它们的组合来实0现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编5程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施方式方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种可读存储介质中,该程序在执行时,包括方法实施方式的步骤之一或其组合。
0此外,在本公开各个实施方式中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模
块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可5读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
本公开还提供了一种电子设备,包括:存储器,存储器存储执行指令;以及处理器或其他硬件模块,处理器或其他硬件模块执行存储器存储的执行指令,使得处理器或其他硬件模块执行上述的方法。
本公开还提供了一种可读存储介质,可读存储介质中存储有执行0指令,所述执行指令被处理器执行时用于实现消息同步方法。
本公开还提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现本公开任一个实施方式的消息同步方法。
在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本公开,而并非是对本公开的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本公开的范围内。
Claims (10)
1.一种消息同步方法,其特征在于,包括:
获取各个订阅主体的包含消息标识的订阅指令,其中所述订阅指令用于表征所述订阅主体待同步的事件信息;
响应于存在所述消息标识的广播消息,分别判断所述订阅主体和各个所述广播消息的发出者之间的属性差异,其中所述广播消息为所述发出者执行目标事件所产生的事件信息,所述属性差异包括技术栈差异、构建引擎差异和无差异;
根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体。
2.根据权利要求1所述的消息同步方法,其特征在于,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:
当所述属性差异为技术栈差异时,利用消息插件中心进行搭建语言的切换,以将所述广播消息由所述发出者对应的搭建语言转换为所述订阅主体对应的搭建语言,其中所述技术栈差异为所述发出者的搭建语言和所述订阅主体的搭建语言不同;
将进行搭建语言切换之后的广播消息同步至所述订阅主体。
3.根据权利要求1所述的消息同步方法,其特征在于,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:
当所述属性差异为构建引擎差异时,利用消息插件中心进行多引擎处理,以将经过多引擎处理之后的所述广播消息发送至所述订阅主体的消息通知中心,以同步至所述订阅主体,其中所述构建引擎差异为所述发出者和所述订阅主体具有相同的搭建语言,各个所述搭建语言对应的构建引擎不同。
4.根据权利要求1所述的消息同步方法,其特征在于,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:
当所述属性差异为无差异时,将所述广播消息发送至所述订阅主体对应的消息通知中心,其中所述订阅主体和所述发出者共享消息通知中心;以及
由所述消息通知中心将所述广播消息同步至所述订阅主体。
5.根据权利要求1所述的消息同步方法,其特征在于,在所述获取各个订阅主体的包含消息标识的订阅指令之后,包括:
根据订阅指令的下达时刻,依时序构建或更新同步列表,其中所述同步列表包括下达所述订阅指令的多个所述订阅主体。
6.根据权利要求5所述的消息同步方法,其特征在于,所述根据所述属性差异,触发对应的通知机制将所述广播消息同步至各个所述订阅主体,包括:
在所述同步列表中筛选对应的所述属性差异为无差异的多个订阅主体,将所述广播消息依时序逐一同步至各个所述订阅主体;以及
在所述同步列表中筛选对应的所述属性差异为所述技术栈差异和所述构建引擎差异的多个订阅主体,将所述广播消息依时序逐一同步至各个所述订阅主体。
7.根据权利要求1所述的消息同步方法,其特征在于,在所述响应于存在所述消息标识的广播消息,分别判断所述订阅主体和各个所述广播消息的发出者之间的属性差异之前,包括:
响应于所述发出者对应的技术栈为特定栈的判断结果,利用转换协议将所述发出者的广播消息发送至所述特定栈的容器中;以及
利用所述目标栈对应的通知机制将所述广播消息同步至各个所述订阅主体。
8.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现如权利要求1至7中任一项所述的消息同步方法。
9.一种可读存储介质,其特征在于,所述可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1至7中任一项所述的消息同步方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述的消息同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609500.6A CN115827275B (zh) | 2022-12-14 | 2022-12-14 | 消息同步方法、电子设备、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609500.6A CN115827275B (zh) | 2022-12-14 | 2022-12-14 | 消息同步方法、电子设备、存储介质及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827275A true CN115827275A (zh) | 2023-03-21 |
CN115827275B CN115827275B (zh) | 2023-08-18 |
Family
ID=85545707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211609500.6A Active CN115827275B (zh) | 2022-12-14 | 2022-12-14 | 消息同步方法、电子设备、存储介质及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827275B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090234928A1 (en) * | 2008-03-03 | 2009-09-17 | International Business Machines Corporation | Method and system for message delivery |
US20170353944A1 (en) * | 2016-06-01 | 2017-12-07 | Lg Electronics Inc. | Method for broadcasting to unspecified entity in wireless communication system and device for the same |
CN111654555A (zh) * | 2020-08-10 | 2020-09-11 | 南京云联数科科技有限公司 | 用于消息分发的方法、电子设备和存储介质 |
CN112788551A (zh) * | 2020-12-30 | 2021-05-11 | 平安证券股份有限公司 | 消息处理方法、装置、终端设备及存储介质 |
CN114443940A (zh) * | 2020-11-03 | 2022-05-06 | 腾讯科技(深圳)有限公司 | 一种消息订阅方法、装置及设备 |
-
2022
- 2022-12-14 CN CN202211609500.6A patent/CN115827275B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090234928A1 (en) * | 2008-03-03 | 2009-09-17 | International Business Machines Corporation | Method and system for message delivery |
US20170353944A1 (en) * | 2016-06-01 | 2017-12-07 | Lg Electronics Inc. | Method for broadcasting to unspecified entity in wireless communication system and device for the same |
CN111654555A (zh) * | 2020-08-10 | 2020-09-11 | 南京云联数科科技有限公司 | 用于消息分发的方法、电子设备和存储介质 |
CN114443940A (zh) * | 2020-11-03 | 2022-05-06 | 腾讯科技(深圳)有限公司 | 一种消息订阅方法、装置及设备 |
CN112788551A (zh) * | 2020-12-30 | 2021-05-11 | 平安证券股份有限公司 | 消息处理方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115827275B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107431969B (zh) | 通信资源分配方法及装置、终端设备、基站和通信系统 | |
CN108966303B (zh) | 一种基于LoRa的无线物联网设备的漫游方法 | |
CN114501340B (zh) | Mbs接收方法、发送方法、装置、终端及基站 | |
CN110581809B (zh) | 数据处理方法、多sim卡业务功能管理实体及终端设备 | |
CN111800744B (zh) | 一种通信方法及装置 | |
CN106576227B (zh) | Dmr/pdt集群和dmr/pdt常规互联互通的方法、装置及系统 | |
CN102196104A (zh) | 交互式语音应答系统中数据与语音融合的方法及系统 | |
US11979247B2 (en) | Message forwarding method and apparatus | |
CN102065371B (zh) | 未获取分量载波的系统消息的处理方法及装置 | |
CN110753313A (zh) | 一种数据同步方法和系统 | |
CN115827275B (zh) | 消息同步方法、电子设备、存储介质及计算机程序产品 | |
CN101500197A (zh) | 一种空中下载方法、装置及系统 | |
CN114697888B (zh) | 5g消息处理方法、装置及存储介质 | |
CN110798349A (zh) | 一种配置分发、接收方法、设备及计算机可读存储介质 | |
CN101662761B (zh) | 一种移动终端控制方法、移动终端、通信系统以及业务平台 | |
CN112788739B (zh) | 一种处理寻呼请求的方法和服务器 | |
CN113132300B (zh) | 音频数据传输方法及装置 | |
CN113068275B (zh) | 多播业务实现方法及装置、通信设备 | |
CN114884805A (zh) | 数据传输方法、装置、终端及存储介质 | |
WO2018219218A1 (zh) | 一种ma配置方法、系统及设备 | |
CN109362105B (zh) | 集群通信终端触发tau的方法、通信系统及相关装置 | |
CN115968571A (zh) | 省电方法、装置、设备及可读存储介质 | |
CN109874113B (zh) | 一种多播组信息的处理方法、装置和系统 | |
US20210297986A1 (en) | Method and device of transmitting information and base station | |
CN113365230B (zh) | 区域群组通信方法、装置、设备、存储介质及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |