一种多端交互方法和装置与流程

文档序号:25543476发布日期:2021-06-18 20:40
一种多端交互方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种多端交互方法和装置。



背景技术:

为提高应用的开发效率,越来越多的应用采用跨端的开发方案,如通过flutter、weex等开发框架进行前端应用的开发,使得应用的开效率大大提高,配置也更加灵活。而在使用开发框架进行应用开发的过程中,会涉及到开发框架端与应用端的通信交互,常采用的办法是双端协定通信模块,然后注册通信模块到应用端,以实现开发框架端与应用端的通信交互。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:应用端根据功能需要常配置有多个业务模块,而在通信交互的过程中每一个业务模块均需要注册对应的通信模块,造成通信模块代码冗余;同时,不同业务模块对应的通信方式也因业务逻辑不同而改变,与业务模块耦合度高,不便于维护且无法进行统一管理、稳定性差。



技术实现要素:

有鉴于此,本发明提供一种多端交互方法和装置,能够避免现有技术中通信模块代码的大量冗余,提高通信交互的稳定性,同时能够对通信模块进行统一管理和维护。

为实现上述目的,根据本发明的第一方面,提供了一种多端交互方法,包括:

接收第一端发送的消息处理请求,所述消息处理请求指示了待处理消息以及接收所述待处理消息的第二端;

判断所述待处理消息是否符合预设规则;

在所述待处理消息符合所述预设规则的情况下,将所述待处理消息发送至所述第二端。

可选地,

所述第一端为应用端,所述第二端为应用开发端;

或所述第一端为应用开发端,所述第二端为应用端。

可选地,还包括:

在所述待处理消息不符合所述预设规则的情况下,对所述待处理消息进行下述一种或多种处理:删除所述待处理消息、向所述第二端发送所述待处理消息异常提示。

可选地,

所述第一端与所述第二端配置有相对应的一个或多个业务模块,所述业务模块用于对所接收的待处理消息进行处理。

可选地,

所述预设规则包括下述一种或多种:所述待处理消息大小、所述待处理消息是否指示了对应的所述业务模块、所述待处理消息是否指示了调用所述业务模块的方法、所述待处理消息是否指示了所述方法的参数。

可选地,

在所述第一端为应用开发端,所述第二端为应用端的情况下,所述预设规则还包括:所述待处理消息是否指示了所述应用端根据所述待处理消息回调所述应用开发端的方法。

可选地,

在所述第一端为应用开发端,所述第二端为应用端的情况下,所述应用端根据所接收的所述待处理消息,动态调用所述业务模块以对所述待处理消息进行处理。

可选地,

所述应用端为app端,所述应用开发端为reactnative端。

为实现上述目的,根据本发明的第二方面,提供了一种多端交互装置,包括:消息处理请求接收模块、待处理消息验证模块、待处理消息发送模块;其中,

所述消息处理请求接收模块,用于接收第一端发送的消息处理请求,所述消息处理请求指示了待处理消息以及接收所述待处理消息的第二端;

所述待处理消息验证模块,用于判断所述待处理消息是否符合预设规则;

所述待处理消息发送模块,用于在所述待处理消息符合预设规则的情况下,将所述待处理消息发送至所述第二端。

可选地,

所述第一端为应用端,所述第二端为应用开发端;

或所述第一端为应用开发端,所述第二端为应用端。

可选地,

所述待处理消息发送模块,还用于,

在所述待处理消息不符合所述预设规则的情况下,对所述待处理消息进行下述一种或多种处理:删除所述待处理消息、向所述第二端发送所述待处理消息异常提示。

可选地,

所述第一端与所述第二端配置有相对应的一个或多个业务模块,所述业务模块用于对所接收的待处理消息进行处理。

可选地,

所述预设规则包括下述一种或多种:所述待处理消息大小、所述待处理消息是否指示了对应的所述业务模块、所述待处理消息是否指示了调用所述业务模块的方法、所述待处理消息是否指示了所述方法的参数。

可选地,

在所述第一端为应用开发端,所述第二端为应用端的情况下,所述预设规则还包括:所述待处理消息是否指示了所述应用端根据所述待处理消息回调所述应用开发端的方法。

可选地,

在所述第一端为应用开发端,所述第二端为应用端的情况下,所述应用端根据所接收的所述待处理消息,动态调用所述业务模块以对所述待处理消息进行处理。

可选地,

所述应用端为app端,所述应用开发端为reactnative端。

为实现上述目的,根据本发明的第三方面,提供了一种用于多端交互的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述多端交互方法中任一所述的方法。

为实现上述目的,根据本发明的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述多端交互方法中任一所述的方法。

上述发明中具有如下优点或有益效果:通过提供一个统一的多端交互装置,实现了应用端与应用开发端之间的通信交互,操作简单,且避免了因业务模块不同而需注册编写的大量冗余的通信模块代码;同时,可对通信交互的待处理消息进行验证及处理,保证了通信交互待处理消息的合法性,避免了一些异常情况的发生,提高了通信交互的安全性、可靠性。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的多端交互方法的主要流程的示意图;

图2是根据本发明实施例的多端交互装置的主要模块的示意图;

图3是根据本发明实施例的多端交互装置的应用方法的示意图;

图4是本发明实施例可以应用于其中的示例性系统架构图;

图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的多端交互方法的主要流程的示意图,如图1所示,该多端交互方法具体可以包括的步骤如下:

步骤s101,接收第一端发送的消息处理请求,所述消息处理请求指示了待处理消息以及接收所述待处理消息的第二端。

第一端或第二端包括但不限于:应用开发端、应用端。其中,应用端包括原生应用端、web应用端。在一个优选实施例中,所述第一端为应用端,所述第二端为应用开发端;或所述第一端为应用开发端,所述第二端为应用端。也即是说,第一端和第二端不直接进行通信交互,而是通过预设的多端交互装置作为中间装置来进行通信交互。更能具体,多端交互装置可分别向第一端、第二端提供api(即应用程序编程接口)以供第一端、第二端通过调用api传递消息,进而将第一端、第二端传递的消息下发至相应的第二端、第一端。

在一种可选的实施方式中,所述应用端为app端,所述应用开发端为reactnative端。可以可理解的是,在应用端为app端的情况下,应用开发端还可以是flutter、weex等应用开发框架。其中,reactnative是facebook开源的跨平台移动应用开发框架,支持ios和android两种类型应用的开发。flutter则是指谷歌的移动ui框架,可以快速在ios和android上构建高质量的原生用户界面。weex则是指阿里的跨平台移动开发工具,支持ios、安卓、yunos及web等多种应用的开发。

在一种可选的实施方式中,所述第一端与所述第二端配置有相对应的一个或多个业务模块,所述业务模块用于对所接收的待处理消息进行处理。业务模块以及业务模块的数量等均是可以根据应用的功能需求设定的,如商品列表展示模块、商品详情页模块、商品结算模块等。

步骤s102,判断所述待处理消息是否符合预设规则。

可以理解的是,由于待处理消息可能来源于第一端的一个或多个业务模块,对应地需发送给第二端的一个或多个业务模块,以对待处理消息进行处理。因此,为保证待处理消息在第一端、第二端之间正常传递,处理消息至少需要指示对待处理消息进行处理的业务模块、调用该业务模块的方法,以及方法所需传递的参数等。除此之外,还可以对待处理消息的大小进行验证,如是否超过了1m或1gb等,以防止恶意传递大尺寸消息对资源的恶意占用及浪费等。

可以理解的是,预设规则可以是根据实际需求设定的任一规则,在一个优选的实施例中,所述预设规则包括下述一种或多种:所述待处理消息大小、所述待处理消息是否指示了对应的所述业务模块、所述待处理消息是否指示了调用所述业务模块的方法、所述待处理消息是否指示了所述方法的参数。

在一种可选的实施方式中,在所述待处理消息不符合所述预设规则的情况下,对所述待处理消息进行下述一种或多种处理:删除所述待处理消息、向所述第二端发送所述待处理消息异常提示。在实际的执行过程中,可以根据待处理消息对第二端业务正常运行的影响程度,选择对不符合预设规则的待处理消息的处理方式。如,以待处理消息指示了待更新的商品列表为例进行说明,在当前待处理消息出现了异常时,可以将带更显的商品列表继续发送给第二端相应地的业务模块进行商品列表的更新及展示,同时向第二端提示待处理消息异常,也可以仅向第二端提示待处理消息异常,以避免更新后的商品列表出错,或无法完成商品列表的更新使得商品列表页面显示出错。除此之外,在待处理消息不符合预设规则的情况下,可以根据实际需求既可以仅向接收消息的第二端提示待处理消息异常以供第二端谨慎或选择性地处理异常的待处理消息;也可以仅向发送消息的第一端提示待处理消息异常,以供第一端重新发送正常的待处理消息,或同时向第一端、第二端发送提示待处理消息异常。

在一种可选的实施方式中,在所述第一端为应用开发端,所述第二端为应用端的情况下,所述预设规则还包括:所述待处理消息是否指示了所述应用端根据所述待处理消息回调所述应用开发端的方法。具体地,以第一端为reactnative端、第二端为原生app端为例进行说明,在reactnative端请求向原生app端发送的待处理消息指示了网络请求等需要原生app再次回传与待处理消息相对应的数据时,原生app端在接收到网络请求,并根据该网络请求获取到相应的数据时,需要将所获取的数据发送给reactnative端,因此,在reactnative端向原生app端发送待处理消息时,该待处理消息还需指示出回传相应的数据,也即回调相应reactnative端时需要的方法,以及该方法需要传入的参数等,以便reactnative端能够及时接收到网络请求对应的数据。

在一种可选的实施方式中,在所述第一端为应用开发端,所述第二端为应用端的情况下,所述应用端根据所接收的所述待处理消息,动态调用所述业务模块以对所述待处理消息进行处理。可以理解的是,由于第一端、第二端均具有一个或多个不同的业务模块,而每一次待处理消息对应的业务模块可能均不相同,因此,第二端在接收到待处理消息时,需要动态调用对应的业务模块对待处理消息进行处理。具体地,以第一端为reactnative端、第二端为ios中的原生app端为例进行说明,在该原生app端接收到相应地待处理消息时,可以通过ios中的动态转发功能,即根据待处理消息动态地创建对象,然后根据创建的对象调用相对应的业务模块以实现对待处理消息的处理。

更近一步地,在多端交互装置中使用哈希表等相对应地存储待处理消息以及动态创建的对象的情况下,原生app端等第二在接收到待处理消息时,先判断哈希表中是否存在有待处理消息对应的对象,若存在,则无需创建对象直接使用已有的对象调用相应的业务模块,若不存在,则仍需为待处理消息创建相应的对象,并根据该创建的对象调用相应的业务模块以实现对待处理消息的处理。

步骤s103,在所述待处理消息符合所述预设规则的情况下,将所述待处理消息发送至所述第二端。具体地,以第一端为app端、第二端为reactnative端为例进行说明,对于需要发送至reactnative端的消息,reactnative端可以使用listener的方式监听从app端发送来的待处理消息。

基于上述实施例,通过提供一个统一的多端交互装置,实现了应用端与应用开发端之间的通信交互,操作简单,且避免了因业务模块不同而需注册编写的大量冗余的通信模块代码;同时,可对通信交互的待处理消息进行验证及处理,保证了通信交互的待处理消息的合法性,避免了一些异常情况的发生,提高了通信交互的安全性、可靠性。

参见图2,在上述实施例的基础上,本发明实施例提供一种多端交互装置200,包括:消息处理请求接收模块201、待处理消息验证模块202、待处理消息发送模块203;其中,

所述消息处理请求接收模块201,用于接收第一端发送的消息处理请求,所述消息处理请求指示了待处理消息以及接收所述待处理消息的第二端;

所述待处理消息验证模块202,用于判断所述待处理消息是否符合预设规则;

所述待处理消息发送模块203,用于在所述待处理消息符合预设规则的情况下,将所述待处理消息发送至所述第二端。

在一种可选的实施方式中,所述第一端为应用端,所述第二端为应用开发端;或所述第一端为应用开发端,所述第二端为应用端。

在一种可选的实施方式中,所述待处理消息发送模块203,还用于,

在所述待处理消息不符合所述预设规则的情况下,对所述待处理消息进行下述一种或多种处理:删除所述待处理消息、向所述第二端发送所述待处理消息异常提示。

在一种可选的实施方式中,所述第一端与所述第二端配置有相对应的一个或多个业务模块,所述业务模块用于对所接收的待处理消息进行处理。

在一种可选的实施方式中,所述预设规则包括下述一种或多种:所述待处理消息大小、所述待处理消息是否指示了对应的所述业务模块、所述待处理消息是否指示了调用所述业务模块的方法、所述待处理消息是否指示了所述方法的参数。

在一种可选的实施方式中,在所述第一端为应用开发端,所述第二端为应用端的情况下,所述预设规则还包括:所述待处理消息是否指示了所述应用端根据所述待处理消息回调所述应用开发端的方法。

在一种可选的实施方式中,在所述第一端为应用开发端,所述第二端为应用端的情况下,所述应用端根据所接收的所述待处理消息,动态调用所述业务模块以对所述待处理消息进行处理。可以理解的是,在多端交互装置200中使用哈希表等相对应地存储待处理消息以及动态创建的对象的情况下,原生app端等第二在接收到待处理消息时,先判断哈希表中是否存在有待处理消息对应的对象,若存在,则无需创建对象直接使用已有的对象调用相应的业务模块,若不存在,则仍需为待处理消息创建相应的对象,并根据该创建的对象调用相应的业务模块以实现对待处理消息的处理。

在一种可选的实施方式中,所述应用端为app端,所述应用开发端为reactnative端。

参见图3,在上述实施例的基础上,本发明实施例提供了一种多端交互装置的应用方法的示意图,具体地,仍以交互的两端分别为app端、reactnative端为例进行说明,其中,app端、reactnative端分别配置具有相对应的业务模块1、业务模块2、业务模块3等,且该多端交互装置200设置于app端:

在app端需要向reactnative端发送待处理消息的情况下,app端通过多端交互装置200提供的api向多端交互装置200发送待处理消息请求,该待处理消息请求是指了待处理消息以及接收该待处理消息的reactnative端;多端交互装置200在接收到待处理消息请求后,判断相应的待处理消息是否指示了reactnative端中对该待处理消息进行处理的业务模块的名称,如业务模块1、业务模块2等,且待处理消息是否指示了调用reactnative端中业务模块的方法以及该方法需要传入的参数;在待处理消息均指示了上述信息的情况下,将该待处理消息发送至reactnative端,以使reactnative端根据待处理消息指示方法及参数,调用相应的业务模块对待处理消息进行处理;而在待处理消息未指示全部上述信息的情况下,删除该待处理信息,同时向reactnative端、app端提示该待处理消息异常。

在reactnative端需要向app端发送待处理消息的情况下,reactnative端通过多端交互装置200提供的api向多端交互装置200发送待处理消息请求,该待处理消息请求是指了待处理消息以及接收该待处理消息的app端;多端交互装置200在接收到待处理消息请求后,判断相应的待处理消息是否指示了app端中对该待处理消息进行处理的业务模块的名称,如业务模块1、业务模块2等,且待处理消息是否指示了调用app端中业务模块的方法以及该方法需要传入的参数;在待处理消息均指示了上述信息的情况下,将该待处理消息发送至app端,以使app端根据待处理消息指示方法及参数,调用相应的业务模块对待处理消息进行处理;而在待处理消息未指示全部上述信息的情况下,删除该待处理信息,同时向reactnative端、app端提示该待处理消息异常。

在此基础上,在reactnative端需要向app端发送待处理消息且需求接收app端根据该待处理消息(如网络请求)返回的数据的情况下,reactnative端通过多端交互装置200提供的api向多端交互装置200发送待处理消息请求,该待处理消息请求是指了待处理消息以及接收该待处理消息的app端;多端交互装置200在接收到待处理消息请求后,判断相应的待处理消息是否指示了app端中对该待处理消息进行处理的业务模块的名称,如业务模块1、业务模块2等,且待处理消息是否指示了调用app端中业务模块的方法以及该方法需要传入的参数,同时,还需判断该待处理消息是否指示了app端向reactnative端发送待处理消息对应的数据时回调reactnative端的方法及参数等;在待处理消息均指示了上述信息的情况下,将该待处理消息发送至app端,以使app端根据待处理消息指示方法及参数,调用相应的业务模块对待处理消息进行处理,并在处理完成后调用相应的回传方法将待处理消息对应的数据回传至reactnative端;而在待处理消息未指示全部上述信息的情况下,删除该待处理信息,同时向reactnative端、app端提示该待处理消息异常。

图4示出了可以应用本发明实施例的多端交互方法或多端交互装置的示例性系统架构400。

如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。

需要说明的是,本发明实施例所提供的多端交互方法一般由服务器405执行,相应地,多端交互装置一般设置于服务器405中。

应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,计算机系统500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块可以设置在处理器中,例如,可以描述为:一种处理器包括消息处理请求接收模块、待处理消息验证模块、待处理消息发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,待处理消息验证模块还可以被描述为“用于判断所述待处理消息是否符合预设规则的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收第一端发送的消息处理请求,所述消息处理请求指示了待处理消息以及接收所述待处理消息的第二端;判断所述待处理消息是否符合预设规则;在所述待处理消息符合所述预设规则的情况下,将所述待处理消息发送至所述第二端。

根据本发明实施例的技术方案,通过提供一个统一的多端交互装置,实现了应用端与应用开发端之间的通信交互,操作简单,且避免了因业务模块不同而需注册编写的大量冗余的通信模块代码;同时,可对通信交互的待处理消息进行验证及处理,保证了通信交互待处理消息的合法性,避免了一些异常情况的发生,提高了通信交互的安全性、可靠性。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1