一种群组数据的同步方法和装置与流程

文档序号:23269834发布日期:2020-12-11 19:01阅读:205来源:国知局
一种群组数据的同步方法和装置与流程

本发明涉及数据处理技术领域,特别是涉及一种群组数据的同步方法和一种群组数据的同步装置。



背景技术:

随着网络社交软件的发展,用户在一款社交软件中往往拥有多个群聊,则在即时通讯中的群资料同步相对于单聊场景而言较为复杂。当群资料发生变更时,例如群头像、群名称、群成员权限等等信息,需要同步到所有的群成员,随着群人数的增加,扩展也随之严重,容易给服务端带来较大的系统开销。当前群资料的同步方案往往是客户端修改群资料,并上传至服务端,服务端再将所更新的群资料下发至对应群组中所有的客户端,以实现群资料的更新,一方面对于每次群资料的变更,需要进行对应的写操作,若有n个群成员,则需要进行n次写入,系统的写扩散十分严重,大大增加了系统的开销,同时每次更新都需要服务端下发至对应的客户端,进一步增加了系统的压力。



技术实现要素:

本发明实施例是提供一种群组数据的同步方法,以解决现有技术中数据同步过程中系统写扩散严重导致开销大以及推送压力大的问题。

相应的,本发明实施例还提供了一种群组数据的同步装置,用以保证上述方法的实现及应用。

为了解决上述问题,本发明实施例公开了一种群组数据的同步方法,应用于服务端,所述服务端与至少一个客户端进行通信,所述方法包括:

接收第一客户端发送的第一请求消息,所述第一请求消息包括群组标识以及与所述群组标识对应的群组修改信息;

根据所述群组修改信息,生成与所述群组标识对应的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

向至少一个第二客户端发送所述第二请求消息,并接收所述至少一个第二客户端发送的针对所述第二请求消息的回复消息,所述回复消息为所述第二客户端根据所述目标群组版本号对第一本地群组版本号进行验证后生成的消息;

若所述回复消息包含所述第二客户端的第一本地群组版本号,则生成数据同步请求消息,并向至少一个第二客户端发送所述数据同步请求消息;

其中,所述数据同步请求消息用于所述第二客户端同步所述群组修改信息与所述目标群组版本号。

可选地,所述根据所述群组修改信息,生成与所述群组标识对应的第二请求消息,包括:

获取与所述群组标识匹配的第二本地群组版本号;

采用所述群组修改信息,将所述第二本地群组版本号更新为目标群组版本号;

采用所述目标群组版本号,生成与所述群组标识对应的第二请求消息。

可选地,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第二本地群组版本号包括第二本地基本资料版本号以及第二本地群成员版本号,所述采用所述群组修改信息,将所述第二本地群组版本号更新为目标群组版本号,包括:

若所述群组修改信息为所述基本资料修改信息,则将所述第二本地基本资料版本号更新为目标基本资料版本号;

若所述群组修改信息为所述群成员修改信息,则将所述第二本地群成员版本号更新为目标群成员版本号。

可选地,所述生成数据同步请求消息,并向至少一个第二客户端发送所述数据同步请求消息,包括:

若所述群组修改信息为所述基本资料修改信息,则采用所述基本资料修改信息与所述目标基本资料版本号,生成数据同步请求消息;

若所述群组修改信息为所述群成员修改信息,则采用所述群成员修改信息与所述目标群成员版本号,生成数据同步请求消息。

可选地,所述向至少一个第二客户端发送所述第二请求消息,并接收所述至少一个第二客户端发送的针对所述第二请求消息的回复消息,包括:

获取与所述群组标识对应的成员标识,并选定与所述成员标识对应的第二客户端;

向在线的至少一个第二客户端发送所述第二请求消息,并接收所述在线的至少一个第二客户端发送的针对所述第二请求消息的回复消息。

本发明实施例公开了一种群组数据的同步方法,应用于客户端,所述客户端与服务端进行通信,所述客户端包括群组会话,所述方法包括:

第一客户端向所述服务端发送第一请求消息,所述第一请求消息包括所述群组会话的群组标识以及针对所述群组会话的群组修改信息;

第二客户端接收所述服务端发送的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

第二客户端获取所述群组会话的第一本地群组版本号;

若所述第二客户端检测到所述目标群组版本号大于所述第一本地群组版本号,则生成包含所述第一本地群组版本号的回复消息,并将所述回复消息发送至所述服务端;

第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号。

可选地,所述群组会话对应群组标识,所述方法还包括:

第一客户端响应作用于所述群组会话的用户操作,获取与所述用户操作对应的群组修改信息;

第一客户端采用所述群组标识与所述群组修改信息,生成第一请求消息。

可选地,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第一客户端采用所述群组标识与所述群组修改信息,生成第一请求消息,包括:

第一客户端采用所述群组标识与所述基本资料修改信息,生成第一请求消息;

和/或,第一客户端采用所述群组标识与所述群成员修改信息,生成第一请求消息。

可选地,所述第一本地群组版本号包括第一本地基本资料版本号以及第一本地群成员版本号,所述第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号,包括:

第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息;

若所述数据同步请求消息包括基本资料修改信息以及目标基本资料版本号,则第二客户端采用所述基本资料修改信息对所述群组会话进行更新,并将所述第一本地基本资料版本号更新为所述目标基本资料版本号;

若所述数据同步请求消息包括群成员修改信息以及目标群成员版本号,则第二客户端采用所述群成员修改信息对所述群组会话进行更新,并将所述第一本地群成员版本号更新为所述目标群成员版本号。

本发明实施例还公开了一种群组数据的同步装置,应用于服务端,所述服务端与至少一个客户端进行通信,所述装置包括:

第一请求消息接收模块,用于接收第一客户端发送的第一请求消息,所述第一请求消息包括群组标识以及与所述群组标识对应的群组修改信息;

第二请求消息生成模块,用于根据所述群组修改信息,生成与所述群组标识对应的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

回复消息接收模块,用于向至少一个第二客户端发送所述第二请求消息,并接收所述至少一个第二客户端发送的针对所述第二请求消息的回复消息,所述回复消息为所述第二客户端根据所述目标群组版本号对第一本地群组版本号进行验证后生成的消息;

同步请求消息发送模块,用于若所述回复消息包含所述第二客户端的第一本地群组版本号,则生成数据同步请求消息,并向至少一个第二客户端发送所述数据同步请求消息;

其中,所述数据同步请求消息用于所述第二客户端同步所述群组修改信息与所述目标群组版本号。

可选地,所述第二请求消息生成模块包括:

群组版本号获取子模块,用于获取与所述群组标识匹配的第二本地群组版本号;

群组版本号更新子模块,用于采用所述群组修改信息,将所述第二本地群组版本号更新为目标群组版本号;

第二请求消息生成子模块,用于采用所述目标群组版本号,生成与所述群组标识对应的第二请求消息。

可选地,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第二本地群组版本号包括第二本地基本资料版本号以及第二本地群成员版本号,所述群组版本号更新子模块具体用于:

若所述群组修改信息为所述基本资料修改信息,则将所述第二本地基本资料版本号更新为目标基本资料版本号;

若所述群组修改信息为所述群成员修改信息,则将所述第二本地群成员版本号更新为目标群成员版本号。

可选地,所述同步请求消息发送模块具体用于:

若所述群组修改信息为所述基本资料修改信息,则采用所述基本资料修改信息与所述目标基本资料版本号,生成数据同步请求消息;

若所述群组修改信息为所述群成员修改信息,则采用所述群成员修改信息与所述目标群成员版本号,生成数据同步请求消息。

可选地,所述回复消息接收模块具体用于:

获取与所述群组标识对应的成员标识,并选定与所述成员标识对应的第二客户端;

向在线的至少一个第二客户端发送所述第二请求消息,并接收所述在线的至少一个第二客户端发送的针对所述第二请求消息的回复消息。

本发明实施例公开了一种群组数据的同步装置,应用于客户端,所述客户端与服务端进行通信,所述客户端包括群组会话,所述装置包括:

位于第一客户端的第一请求消息发送模块,用于向所述服务端发送第一请求消息,所述第一请求消息包括所述群组会话的群组标识以及针对所述群组会话的群组修改信息;

位于第二客户端的第二请求消息接收模块,用于接收所述服务端发送的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

位于第二客户端的群组版本号获取模块,用于获取所述群组会话的第一本地群组版本号;

位于第二客户端的回复消息发送模块,用于若检测到所述目标群组版本号大于所述第一本地群组版本号,则生成包含所述第一本地群组版本号的回复消息,并将所述回复消息发送至所述服务端;

位于第二客户端的群组数据同步模块,用于接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号。

可选地,所述群组会话对应群组标识,所述装置还包括:

位于第一客户端的群组修改信息获取模块,用于响应作用于所述群组会话的用户操作,获取与所述用户操作对应的群组修改信息;

位于第一客户端的第一请求消息生成模块,用于采用所述群组标识与所述群组修改信息,生成第一请求消息。

可选地,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第一请求消息生成模块具体用于:

第一客户端采用所述群组标识与所述基本资料修改信息,生成第一请求消息;

和/或,第一客户端采用所述群组标识与所述群成员修改信息,生成第一请求消息。

可选地,所述第一本地群组版本号包括第一本地基本资料版本号以及第一本地群成员版本号,所述群组数据同步模块包括:

同步请求消息接收子模块,用于第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息;

第一版本号更新子模块,用于若所述数据同步请求消息包括基本资料修改信息以及目标基本资料版本号,则第二客户端采用所述基本资料修改信息对所述群组会话进行更新,并将所述第一本地基本资料版本号更新为所述目标基本资料版本号;

第二版本号更新子模块,用于若所述数据同步请求消息包括群成员修改信息以及目标群成员版本号,则第二客户端采用所述群成员修改信息对所述群组会话进行更新,并将所述第一本地群成员版本号更新为所述目标群成员版本号。

本发明实施例公开了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的方法。

本发明实施例公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的方法。

本发明实施例包括以下优点:

在本发明实施例中,服务端可以接收第一客户端发送的第一请求消息,并根据第一请求消息中的群组修改信息,生成与群组标识对应的第二请求消息,然后将包含与群组修改信息对应的目标群组版本号发送至至少一个第二客户端,使得第二客户端根据目标群组版本号对本地群组版本号进行验证,接着服务端接收第二客户端发送的回复消息,若该回复消息包含第二客户端的本地群组版本号,则生成数据同步请求消息,并向至少一个客户端发送数据同步请求消息,使得第二客户端同步群组修改信息与目标群组版本号,从而维护群组版本号,减少服务端由于群人数导致的写扩散,降低系统开销,并通过客户端拉取的方式实现群组数据的更新,降低服务端的推送压力。

附图说明

图1本发明实施例中群组版本号的数据结构;

图2是本发明的一种群组数据的同步方法实施例一的步骤流程图;

图3是本发明的一种群组数据的同步方法实施例二的步骤流程图;

图4是本发明实施例中通信示意图;

图5是本发明的一种群组数据的同步装置实施例的结构框图;

图6是本发明的一种群组数据的同步装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

客户端可以为运行于用户终端的应用程序,如具有即时通信的应用程序等,在客户端中可以提供单聊与群聊功能,其中,单聊为一对一的聊天方式,群聊为多人聊天方式。对于即时通讯中的群资料同步相对于单聊场景来说比较复杂,如果群资料发生变更,比如群头像、群名称、群成员等属性发生变更,需要同步至所有的群成员,而随着群人员的增多,由于群数据存储于服务端,则容易导致服务端扩散越严重,给服务端造成较大的系统压力。

其中,第一客户端可以为发生群资料变更的客户端,第二客户端可以为需要同步群组数据的客户端,例如,在一个群组中包括5名群成员,分别对应客户端①、客户端②、客户端③、客户端④以及客户端⑤,则客户端①对群资料进行修改,例如修改自身的头像、昵称等等,则客户端①可以作为第一客户端,其余客户端作为需要同步群组数据的第二客户端。对于服务端,参照图1,示出了本发明实施例中群组版本号的数据结构,其维护每个群成员对应的每个群的版本号,当发生群资料变更时,同时更新群中所有成员的群列表版本号。在获取群变更数据时,与用户群列表版本号做对比,取比客户端版本号大的即可。

具体的,当群成员修改群资料,服务端可以更新群成员的群列表版本号,并检查群中成员的在线状态,对于在线的用户,服务端触发版本号比较,获取增量数据并通过长连接下发,在线用户收到同步数据,更新客户端本地版本号,对于离线登录用户,则通过上传客户端本地版本号,服务端判断版本是否有变更,从而获取增量下发。然而,这种群组数据的同步方式,对于每次群变更,都需要更新群列表版本号,若群组中包括n个群成员,则需要进行n次写操作,服务端写扩散十分严重,并且,对于每个在线的群成员,服务端需要获取增量数据下发到对应的客户端,推送压力巨大,进一步加大了服务端的系统开销。

因此,本发明实施例的核心发明点之一在于通过对群组版本号进行优化,客户端与服务端仅需要维护群组所对应的基本资料版本号与群成员版本号,从而将服务端需要对每个群成员对应的每个群的版本号进行维护,减少为只对一个群组对应的少量版本号进行维护,大大减少服务端由于群人数导致的写扩散,降低系统开销,并通过客户端拉取的方式实现群组数据的更新,降低服务端的推送压力。

具体的,参照图2,示出了本发明的一种群组数据的同步方法实施例的步骤流程图,应用于服务端,所述服务端与至少一个客户端进行通信,具体可以包括如下步骤:

步骤201,接收第一客户端发送的第一请求消息,所述第一请求消息包括群组标识以及与所述群组标识对应的群组修改信息;

作为一种示例,对于客户端中群成员可以分为第一用户与第二用户,其中,第一用户可以为进行群资料变更的用户,第二用户则为需要同步群组数据的用户,分别对应第一客户端与第二客户端。

需要说明的是,对于第一用户与第二用户,由于各个群成员在群组内的权限不同,则其所能够修改的群组数据不同,例如,对于具有管理权限的用户,其可以变更群组中的公共资料,也可以变更自身在群组中的资料,如群成员在群组中的权限、群公告等等;而对于不具有管理权限的用户,其仅仅只能变更自身在群组中的资料,如在群组内的昵称、自身的头像等等。

在具体实现中,当第一客户端的用户对群组资料进行修改后,第一客户端可以获取用户所修改的信息,并生成对应的第一请求消息,然后发送至服务端,以便服务端对群组数据进行处理。其中,第一请求消息中可以包括所修改的群组的群组标识,以及对应的群组修改信息。

其中,群组数据可以包括群组的基本资料以及群成员信息,基本资料可以包括群名称、群成员数、群公告等等,群成员信息可以包括各个群成员的权限、头像信息、群内昵称等等。则群组修改信息可以包括基本资料的修改信息,也可以包括群成员信息的修改信息,还可以包括两者,本发明对此不作限制。

在一种示例中,第一客户端可以响应作用于群组会话的用户操作,获取与用户操作对应的群组修改信息,接着采用群组标识与基本资料修改信息,生成第一请求消息,和/或,采用群组标识与群成员修改信息,生成第一请求消息。例如,用户可以通过打开对应群组的群资料页面,并对页面中的群资料进行修改,具有管理权限的用户可以修改群公告、成员权限等,不具有管理权限的用户可以通过个人信息页面对头像信息进行修改,或在群组页面中修改自身的群内昵称等等,从而客户端可以根据用户修改的信息,生成第一请求消息,并发送至服务端。

步骤202,根据所述群组修改信息,生成与所述群组标识对应的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

在本发明实施例中,服务端接收到第一客户端发送的第一请求消息后,可以解析该第一请求消息,得到群组标识以及与群组标识对应的群组修改信息,从而可以根据群组修改信息,生成与群组标识对应的第二请求消息,以便通过第二请求消息通知同一群组中所有群成员,群组数据发生了变化。

在具体实现中,为了减少服务端对每个群成员对应的每个群的版本号进行维护,可以通过群组标识对应群组数据进行维护,即每个群组标识对应一个群组,每个群组的群组数据至少包括基本资料以及群成员信息等,每个群组中的群成员对应一个成员标识,成员标识可以为用户在客户端登录的帐号等,则服务端可以维护如下表1与表2所示的关系:

表1

从而服务端通过对群组标识与成员标识之间的映射关系,有利于在群组数据同步过程中,快速确定待同步的成员,提高了数据同步的效率。

表2

在具体实现中,第二请求消息中可以包括与群组修改信息对应的目标群组版本号,则服务端可以获取与群组标识匹配的第二本地群组版本号,并采用群组修改信息,将第二本地群组版本号更新为目标群组版本号,然后对目标群组版本号进行封装,生成与群组标识对应的第二请求消息,以便通过第二请求消息通知同一群组中所有群成员,群组数据发生了变化。具体的,服务端通过群组标识确定对应的群组数据后,可以根据群组修改信息对群组数据进行更新,同时对群组标识所对应的群组版本号进行更新,如版本号加1等。

其中,如表3所示,第二本地群组版本号包括第二本地基本资料版本号以及第二本地群成员版本号,其分别对应于群组的基本资料以及群成员信息,通过对群组数据进行拆分,有利于数据同步过程中,可以按需进行拉取,提高数据同步效率。

表3

需要说明的是,第一本地群组版本号可以为客户端中维护的群组的版本号,其可以包括群组的本地基本资料版本号以及群成员版本号;第二本地群组版本号为服务端中维护的群组的版本号,通过对一个群组维护两个子版本号,有利于客户端按需拉取数据,也有利于服务端进行针对性的数据更新。

在一种示例中,群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,若群组修改信息为基本资料修改信息,则服务端可以将第二本地基本资料版本号更新为目标基本资料版本号;若群组修改信息为群成员修改信息,则服务端可以将第二本地群成员版本号更新为目标群成员版本号;若群组修改信息包括基本资料修改信息以及群成员修改信息,则服务端可以分别将将第二本地基本资料版本号更新为目标基本资料版本号,将第二本地群成员版本号更新为目标群成员版本号,从而通过维护群组对应版本号,减少服务端由于群人员导致的写扩散,大大降低服务端的系统开销。

需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,在本发明实施例的思想指导下,本领域技术人员可以根据实际情况进行设置,本发明对此不作限制。

步骤203,向至少一个第二客户端发送所述第二请求消息,并接收所述至少一个第二客户端发送的针对所述第二请求消息的回复消息,所述回复消息为所述第二客户端根据所述目标群组版本号对第一本地群组版本号进行验证后生成的消息;

当服务端生成第二请求消息后,可以向与群组标识对应的至少一个第二客户端发送第二请求消息,则第二客户端接收到第二请求消息后,可以对第二请求消息进行解析,得到与群组修改信息对应的目标群组版本号。接着第二客户端可以获取本地维护的第一本地群组版本号,并将第一本地群组版本号与目标群组版本号进行比对,以对本地群组版本号进行验证。若第二客户端检测到目标群组版本号大于第一本地群组版本号,则生成包含第一本地群组版本号的回复消息,并将回复消息发送至服务端。

具体的,服务端可以获取与群组标识对应的成员标识,并选定与成员标识对应的第二客户端,同时排除第一客户端,接着向在线的各个第二客户端发送第二请求消息。第二客户端接收到第二请求消息后,解析得到目标群组版本号,若目标群组版本号包括目标基本资料版本号,则获取本地基本资料版本号,并与目标基本资料版本号进行比对;若目标群组版本号包括目标群成员版本号,则获取本地群成员版本号,并与目标群成员版本号进行比对;若包含两者,则同时进行比对,其中,版本号数值越大,代表版本越新。则当第二客户端检测到目标群组版本号大于第一本地群组版本号时,则将包含第一本地群组版本号的回复消息发送至服务端,以告知服务端本地群组数据需要更新。

步骤204,若所述回复消息包含所述第二客户端的第一本地群组版本号,则生成数据同步请求消息,并向至少一个第二客户端发送所述数据同步请求消息。

在具体实现中,服务端接收到第二客户端发送的回复消息后,进行解析,若得到第二客户端的第一本地群组版本号,则表示第一本地群组版本号小于服务端中目标群组版本号,第二客户端需要进行群组数据同步,则服务端可以采用群组修改信息与目标群组版本号,生成数据同步请求消息,并发送至各个在线的第二客户端。

具体的,若群组修改信息为基本资料修改信息,则服务端可以采用基本资料修改信息与目标基本资料版本号,生成数据同步请求消息;若群组修改信息为群成员修改信息,则服务端可以采用群成员修改信息与目标群成员版本号,生成数据同步请求消息;若包含两者,则服务端可以采用基本资料修改信息与目标基本资料版本号、群成员修改信息与目标群成员版本号,生成数据同步请求消息。

在线的第二客户端接收到服务端发送的针对回复消息的数据同步请求消息后,若数据同步请求消息包括基本资料修改信息以及目标基本资料版本号,则第二客户端采用基本资料修改信息对群组会话进行更新,并将第一本地基本资料版本号更新为目标基本资料版本号;若数据同步请求消息包括群成员修改信息以及目标群成员版本号,则第二客户端采用群成员修改信息对群组会话进行更新,并将第一本地群成员版本号更新为目标群成员版本号。

此外,对于离线用户的第二客户端,则可以在用户登录后,由第二客户端调用对应的接口,生成包含第一本地群组版本号的第三请求消息,并将第三请求消息发送至服务端,以便服务端根据接收到的第一本地群组版本号进行比对,若第一本地群组版本号大于服务端中目标群组版本号,则向第二客户端发送数据获取请求,以同步客户端与服务端之间的群组数据;若第一本地群组版本号小于服务端中目标群组版本号,则可以向第二客户端发送数据同步请求消息,以便第二客户端进行群组数据的同步,和本地群组版本号的更新。

在本发明实施例中,服务端可以接收第一客户端发送的第一请求消息,并根据第一请求消息中的群组修改信息,生成与群组标识对应的第二请求消息,然后将包含与群组修改信息对应的目标群组版本号发送至至少一个第二客户端,使得第二客户端根据目标群组版本号对本地群组版本号进行验证,接着服务端接收第二客户端发送的回复消息,若该回复消息包含第二客户端的本地群组版本号,则生成数据同步请求消息,并向至少一个客户端发送数据同步请求消息,使得第二客户端同步群组修改信息与目标群组版本号,从而通过客户端本地维护版本信息,减少服务端由于群人数导致的写扩散,降低系统开销,并通过客户端拉取的方式实现群组数据的更新,降低服务端的推送压力。

参照图3,示出了本发明的一种群组数据的同步方法实施例的步骤流程图,应用于客户端,所述客户端与服务端进行通信,所述客户端包括群组会话,具体可以包括如下步骤:

步骤301,第一客户端向所述服务端发送第一请求消息,所述第一请求消息包括所述群组会话的群组标识以及针对所述群组会话的群组修改信息;

步骤302,第二客户端接收所述服务端发送的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

步骤303,第二客户端获取所述群组会话的第一本地群组版本号;

步骤304,若所述第二客户端检测到所述目标群组版本号大于所述第一本地群组版本号,则生成包含所述第一本地群组版本号的回复消息,并将所述回复消息发送至所述服务端;

步骤305,第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号。

在本发明的一种可选实施例中,所述群组会话对应群组标识,所述方法还包括:

第一客户端响应作用于所述群组会话的用户操作,获取与所述用户操作对应的群组修改信息;

第一客户端采用所述群组标识与所述群组修改信息,生成第一请求消息。

在本发明的一种可选实施例中,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第一客户端采用所述群组标识与所述群组修改信息,生成第一请求消息,包括:

第一客户端采用所述群组标识与所述基本资料修改信息,生成第一请求消息;

和/或,第一客户端采用所述群组标识与所述群成员修改信息,生成第一请求消息。

在本发明的一种可选实施例中,所述第一本地群组版本号包括第一本地基本资料版本号以及第一本地群成员版本号,所述第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号,包括:

第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息;

若所述数据同步请求消息包括基本资料修改信息以及目标基本资料版本号,则第二客户端采用所述基本资料修改信息对所述群组会话进行更新,并将所述第一本地基本资料版本号更新为所述目标基本资料版本号;

若所述数据同步请求消息包括群成员修改信息以及目标群成员版本号,则第二客户端采用所述群成员修改信息对所述群组会话进行更新,并将所述第一本地群成员版本号更新为所述目标群成员版本号。

在本发明实施例中,服务端可以接收第一客户端发送的第一请求消息,并根据第一请求消息中的群组修改信息,生成与群组标识对应的第二请求消息,然后将包含与群组修改信息对应的目标群组版本号发送至至少一个第二客户端,使得第二客户端根据目标群组版本号对本地群组版本号进行验证,接着服务端接收第二客户端发送的回复消息,若该回复消息包含第二客户端的本地群组版本号,则生成数据同步请求消息,并向至少一个客户端发送数据同步请求消息,使得第二客户端同步群组修改信息与目标群组版本号,从而通过客户端本地维护版本信息,减少服务端由于群人数导致的写扩散,降低系统开销,并通过客户端拉取的方式实现群组数据的更新,降低服务端的推送压力。

为了使本领域技术人员能够更好地理解本发明实施例,下面通过一个例子对本发明实施例加以说明:

参照图4,示出了本发明实施例中通信示意图,其中,对于一个群组而言,可以将发生群组数据变更的客户端作为第一客户端,将需要同步群组数据的客户端作为第二客户端,服务端中维护群组数据以及对应的群组版本号。群组版本号可以包括基本资料版本号与群成员版本号,则群组数据同步可以包括如下过程:

1、客户端本地维护群组版本号,群基本资料版本groupinfoversion,群成员版groupmemberversion。第一客户端发起更新群资料的请求;

2、服务端收到群变更的请求,修改服务端的群数据,并修改对应群的小版本,例如,修改基本资料版本号和/或群成员版本号。

3、服务端下发一条群tip消息或者command到在线的第二客户端上,这条群tip消息或者command中会附带上变更的版本号。

4、在线的第二客户端收到群tip消息后,解析下发的版本号信息,进行群组版本号的比对,如果比本地的版本号大,会触发调服务端对应的增量接口;

5、第二客户端调增量的接口并带上本地的群组版本号;

6、服务端根据第二客户端传的群组版本号,获取增量的信息并附带增量信息中目前的最新的群组版本号,然后下发至对应的第二客户端;

7、第二客户端收到最新的增量数据和最新的版本号,然后更新本地的群组版本号。至此,用户能同步群变更信息并与服务端保持同样的群版本。

此外,对于离线用户,则在用户重新登陆后,第二客户端可以调用后端接口同步群组版本号,发送请求消息至服务端获取对应的群组版本号。服务端第二客户端发送的群组版本号,进行群组版本号的比较,如果比服务端本地版本号大,下发本地的版本号并调用后端增量接口同步获取变更信息,以保证第二客户端同步所有的群变更数据以及群组版本号,至此与服务端保持一致的数据与版本号。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图5,示出了本发明的一种群组数据的同步装置实施例的结构框图,应用于服务端,所述服务端与至少一个客户端进行通信,具体可以包括如下模块:

第一请求消息接收模块501,用于接收第一客户端发送的第一请求消息,所述第一请求消息包括群组标识以及与所述群组标识对应的群组修改信息;

第二请求消息生成模块502,用于根据所述群组修改信息,生成与所述群组标识对应的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

回复消息接收模块503,用于向至少一个第二客户端发送所述第二请求消息,并接收所述至少一个第二客户端发送的针对所述第二请求消息的回复消息,所述回复消息为所述第二客户端根据所述目标群组版本号对第一本地群组版本号进行验证后生成的消息;

同步请求消息发送模块504,用于若所述回复消息包含所述第二客户端的第一本地群组版本号,则生成数据同步请求消息,并向至少一个第二客户端发送所述数据同步请求消息;

其中,所述数据同步请求消息用于所述第二客户端同步所述群组修改信息与所述目标群组版本号。

在本发明的一种可选实施例中,所述第二请求消息生成模块502包括:

群组版本号获取子模块,用于获取与所述群组标识匹配的第二本地群组版本号;

群组版本号更新子模块,用于采用所述群组修改信息,将所述第二本地群组版本号更新为目标群组版本号;

第二请求消息生成子模块,用于采用所述目标群组版本号,生成与所述群组标识对应的第二请求消息。

在本发明的一种可选实施例中,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第二本地群组版本号包括第二本地基本资料版本号以及第二本地群成员版本号,所述群组版本号更新子模块具体用于:

若所述群组修改信息为所述基本资料修改信息,则将所述第二本地基本资料版本号更新为目标基本资料版本号;

若所述群组修改信息为所述群成员修改信息,则将所述第二本地群成员版本号更新为目标群成员版本号。

在本发明的一种可选实施例中,所述同步请求消息发送模块504具体用于:

若所述群组修改信息为所述基本资料修改信息,则采用所述基本资料修改信息与所述目标基本资料版本号,生成数据同步请求消息;

若所述群组修改信息为所述群成员修改信息,则采用所述群成员修改信息与所述目标群成员版本号,生成数据同步请求消息。

在本发明的一种可选实施例中,所述回复消息接收模块503具体用于:

获取与所述群组标识对应的成员标识,并选定与所述成员标识对应的第二客户端;

向在线的至少一个第二客户端发送所述第二请求消息,并接收所述在线的至少一个第二客户端发送的针对所述第二请求消息的回复消息。

参照图6,示出了本发明的一种群组数据的同步装置实施例的结构框图,应用于客户端,所述客户端与服务端进行通信,所述客户端包括群组会话,具体可以包括如下模块:

位于第一客户端的第一请求消息发送模块601,用于向所述服务端发送第一请求消息,所述第一请求消息包括所述群组会话的群组标识以及针对所述群组会话的群组修改信息;

位于第二客户端的第二请求消息接收模块602,用于接收所述服务端发送的第二请求消息,所述第二请求消息包括与所述群组修改信息对应的目标群组版本号;

位于第二客户端的群组版本号获取模块603,用于获取所述群组会话的第一本地群组版本号;

位于第二客户端的回复消息发送模块604,用于若检测到所述目标群组版本号大于所述第一本地群组版本号,则生成包含所述第一本地群组版本号的回复消息,并将所述回复消息发送至所述服务端;

位于第二客户端的群组数据同步模块605,用于接收所述服务端发送的针对所述回复消息的数据同步请求消息,并根据所述数据同步请求消息同步所述群组修改信息与所述目标群组版本号。

在本发明的一种可选实施例中,所述群组会话对应群组标识,所述装置还包括:

位于第一客户端的群组修改信息获取模块,用于响应作用于所述群组会话的用户操作,获取与所述用户操作对应的群组修改信息;

位于第一客户端的第一请求消息生成模块,用于采用所述群组标识与所述群组修改信息,生成第一请求消息。

在本发明的一种可选实施例中,所述群组修改信息包括基本资料修改信息以及群成员修改信息中的至少一种,所述第一请求消息生成模块具体用于:

第一客户端采用所述群组标识与所述基本资料修改信息,生成第一请求消息;

和/或,第一客户端采用所述群组标识与所述群成员修改信息,生成第一请求消息。

在本发明的一种可选实施例中,所述第一本地群组版本号包括第一本地基本资料版本号以及第一本地群成员版本号,所述群组数据同步模块605包括:

同步请求消息接收子模块,用于第二客户端接收所述服务端发送的针对所述回复消息的数据同步请求消息;

第一版本号更新子模块,用于若所述数据同步请求消息包括基本资料修改信息以及目标基本资料版本号,则第二客户端采用所述基本资料修改信息对所述群组会话进行更新,并将所述第一本地基本资料版本号更新为所述目标基本资料版本号;

第二版本号更新子模块,用于若所述数据同步请求消息包括群成员修改信息以及目标群成员版本号,则第二客户端采用所述群成员修改信息对所述群组会话进行更新,并将所述第一本地群成员版本号更新为所述目标群成员版本号。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。

本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种群组数据的同步方法和一种群组数据的同步装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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