联系人同步方法、装置及系统与流程

文档序号:13763477阅读:192来源:国知局
联系人同步方法、装置及系统与流程

本发明涉及通信技术领域,尤其涉及联系人同步方法、装置及系统。



背景技术:

近几年来,随着手机等移动终端的普及,以及手机的智能化、人性化,人们越来越习惯通过手机处理工作、存储越来越多的联系人信息等等。如何防止手机中数据的丢失,已经成为人们的关注点。其中,尤为重要的就是联系人信息等数据。当联系人信息发生改变时,各个终端如何与服务器端进行数据交互,并保证在交互过程中数据不丢失,以及及时地更新数据,成为当前面临的重大课题。



技术实现要素:

本发明的主要目的在于提出一种联系人同步方法、装置及系统,旨在解决在客户端与服务器端进行数据交互时容易出现数据丢失、更新不及时的问题。

为实现上述目的,本发明提供的一种联系人同步方法,所述方法包括步骤:客户端向服务器端发送联系人数据的第一版本号以及数据拉取请求;所述服务器端接收所述数据拉取请求,并对所述客户端进行第一校验;当校验通过时,所述服务器端根据所述第一版本号查找最新的差异数据,并生成身份标识符;所述服务器端将所述差异数据、所述身份标识符以及所述服务器端对所述联系人信息更新的第二版本号发送给所述客户端;所述客户端判断所述第二版本号与所述第一版本号是否相同,若不相同,则根据所述差异数据同步所述客户端的本地联系人数据。

此外,为实现上述目的,本发明还提出一种联系人同步方法,应用于客户端,所述方法包括步骤:向服务器端发送联系人数据的第一版本号以及数据拉取请求;接收所述服务器端发送的差异数据、身份标识符以及所述服务器端对所述联系人信息更新的第二版本号;判断所述第二版本号与所述第一版本号是否相同;若不相同,则根据所述差异数据同步本地联系人数据。

可选地,所述方法还包括:判断是否有本地联系人变更数据;若是,则将所述变更数据、第一版本号和身份标识符的推送数据发送至所述服务器端,以使所述服务器端同步联系人数据;接收所述服务器端发送的修改后的第二版本号、所述变更数据的映射关系;根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

此外,为实现上述目的,本发明还提出一种联系人同步方法,应用于服务器端,所述方法包括步骤:接收客户端发送的联系人数据的第一版本号以及数据拉取请求;根据所述数据拉取请求,对所述客户端进行第一校验;当校验通过时,根据所述第一版本号查找最新的差异数据,并生成身份标识符;将所述差异数据、所述身份标识符以及对所述联系人信息更新的第二版本号发送给所述客户端,当所述客户端判断所述第二版本号与所述第一版本号不相同时,使所述客户端根据所述差异数据同步本地联系人数据。

可选地,所述方法还包括:接收所述客户端发送的联系人变更数据、第一版本号和身份标识符;根据所述身份标识符,对所述客户端进行第二校验;当校验通过时,判断是否有操作锁;若是,则删除所述身份标识符并向所述客户端发送在预定时间之后重新发送所述推送数据的指令;若否,则判断所述第二版本号与所述第一版本号是否相同,若相同,则根据所述变更数据同步本地联系人数据,并修改所述第二版本号,同时删除ID标识符。

可选地,当判定没有操作锁,且所述第二版本号与所述第一版本号相同时,添加操作锁,并在同步联系人数据之后再解除锁。

可选地,所述方法还包括:将修改后的第二版本号、所述变更数据的映射关系发送至所述客户端,以使所述客户端根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

此外,为实现上述目的,本发明还提出一种联系人同步系统,所述系统包括客户端和与所述客户端通信连接的服务器端,其中,所述客户端,用于向所述服务器端发送联系人数据的第一版本号以及数据拉取请求;所述服务器端,用于接收所述数据拉取请求,并对所述客户端进行第一校验;当校验通过时,所述服务器端根据所述第一版本号查找最新的差异数据,并生成身份标识符;所述服务器端,还用于将所述差异数据、所述身份标识符以及所述服务器端对所述联系人信息更新的第二版本号发送给所述客户端;所述客户端,还用于判断所述第二版本号与所述第一版本号是否相同,若不相同,则根据所述差异数据同步所述客户端的本地联系人数据。

此外,为实现上述目的,本发明还提出一种联系人同步装置,应用于客户端,所述装置包括:请求模块,用于向服务器端发送联系人数据的第一版本号以及数据拉取请求;第一接收模块,用于接收所述服务器端发送的差异数据、身份标识符以及所述服务器端对所述联系人信息更新的第二版本号;第一判断模块,用于判断所述第二版本号与所述第一版本号是否相同;第一同步模块,用于当第一判断模块判定所述第二版本号与所述第一版本号不相同时,则根据所述差异数据同步本地联系人数据。

此外,为实现上述目的,本发明还提出一种联系人同步装置,应用于服务器端,所述装置包括:第二接收模块,用于接收客户端发送的联系人数据的第一版本号以及数据拉取请求;校验模块,用于根据所述数据拉取请求,对所述客户端进行第一校验;差异数据查找模块,用于当校验通过时,根据所述第一版本号查找最新的差异数据,并生成身份标识符;第二发送模块,用于将所述差异数据、所述身份标识符以及对所述联系人信息更新的第二版本号发送给所述客户端,当所述客户端判断所述第二版本号与所述第一版本号不相同时,使所述客户端根据所述差异数据同步本地联系人数据。

本发明提出的联系人同步方法、装置及系统,若在服务器端出现联系人数据变更,客户端向服务器端发送联系人数据的第一版本号以及数据拉取请求,服务器端接收所述数据拉取请求,并对所述客户端进行第一校验,当校验通过时,服务器端根据第一版本号查找最新的差异数据并生成身份标识符,并将差异数据、身份标识符以及第二版本号发送给客户端,当客户端判定第二版本号与第一版本号不同时,在客户端同步本地联系人的差异数据。若在客户端出现联系人数据变更,客户端将变更数据、第一版本号和身份标识符推送至服务器端,服务器端对客户端校验通过,并判断是否有操作锁以及第一版本号是否等于第二版本号,当没有操作锁且第一版本号等于第二版本号时对服务器端的数据进行同步,以确保在客户端与服务器端交互数据不丢失且及时更新。

附图说明

图1为本发明第一实施例提供的联系人同步方法的流程示意图;

图2为本发明第一实施例提供的联系人同步方法的另一优选流程示意图;

图3为本发明第二实施例提供的联系人同步方法的流程示意图;

图4为本发明第三实施例提供的联系人同步方法的流程示意图;

图5为本发明第三实施例提供的联系人同步方法的另一优选流程示意图;

图6为本发明第四实施例提供的联系人同步系统的模块示意图;

图7为本发明第五实施例提供的联系人同步装置的模块示意图;

图8为本发明第六实施例提供的联系人同步装置的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

如图1所示,为本发明第一实施例提供的联系人同步方法的流程示意图,本实施例的联系人同步方法是基于努比亚(Nubia)云同步协议与服务器端进行通信,所示方法包括步骤:

步骤110,客户端向服务器端发送联系人数据的第一版本号以及数据拉取请求。

具体地,客户端发起同步流程,将本地联系人数据的第一版本号(例如cVersion)发送给服务器端,同时,客户端发送登录后的令牌(token)至服务器端,并向服务器端发送数据拉取请求,即请求从服务器端拉取数据。若客户端第一次发送数据拉取请求,则第一版本号cVersion记为0。

步骤120,服务器端接收数据拉取请求,并对客户端进行第一校验;当校验通过时,则进入步骤130,当校验失败时,则流程结束。

具体地,根据拉取请求,对客户端进行token校验,校验通过,则进入步骤130,校验失败,则流程结束。

步骤130,服务器端根据第一版本号查找最新的差异数据,并生成身份(Identification,ID)标识符。

具体地,服务器端根据第一版本号与token对应的用户ID,查找出第一版本号在服务器端最新版本的差异数据,并生成唯一的ID标识符(例如:版本身份标识符,SessionId)。

步骤140,服务器端将差异数据、所述ID标识符以及服务器端对联系人信息更新的第二版本号发送给所述客户端。

具体地,服务器端对联系人信息进行更新后形成第二版本号(例如sVersion),并将差异数据、ID标识符和第二版本号发送给客户端。

步骤150,客户端判断所述第二版本号与所述第一版本号是否相同,若是,则进入步骤160,若否,则进入步骤170。

具体地,客户端获取服务器端发送的数据后,判断第二版本号与第一版本号是否相同,如果第二版本号与第一版本号相同且差异数据为空,则说明服务器端没有数据变更,则进入步骤160;如果第二版本号与第一版本号不相同,说明服务器端有数据变更,则进入步骤170。

步骤160,客户端不需要修改本地联系人数据。

步骤170,根据所述差异数据同步所述客户端的本地联系人数据。

具体地,根据服务器端发送的差异数据修改本地数据,并将冲突数据、重复数据进行数据合并,并将本地的第一版本号修改为第二版本号。

本实施例提供的联系人同步方法,若在服务器端出现联系人数据变更,客户端向服务器端发送联系人数据的第一版本号以及数据拉取请求,服务器端接收所述数据拉取请求,并对所述客户端进行第一校验,当校验通过时,服务器端根据第一版本号查找最新的差异数据并生成ID标识符,并将差异数据、ID标识符以及第二版本号发送给客户端,当客户端判定第二版本号与第一版本号不同时,在客户端同步本地联系人的差异数据,以确保在客户端与服务器端交互数据不丢失且及时更新。

请参照图2,作为对本实施例的进一步改进,联系人同步方法还可以包括以下步骤:

步骤210,客户端判定本地有联系人变更数据时,将变更数据、第一版本号和ID标识符的推送数据发送至服务器端。

步骤220,根据所述ID标识符,服务器端对客户端进行第二校验。

具体地,服务器端对ID标识符进行校验,如果校验通过,则进入步骤230,如果校验失败,则返回客户端。

步骤230,当校验通过时,服务器端判断是否有操作锁;若是,则进入步骤240,若否,则进入步骤250。

步骤240,删除ID标识符并向客户端发送在预定时间之后重新发送所述推送数据的指令。

具体地,删除客户端发送的ID标识符并告知客户端稍后再重新推送数据。

步骤250,判断所述第二版本号与所述第一版本号是否相同,若相同,则进入步骤260,若不相同,则进入步骤240。

步骤260,根据变更数据同步所述服务器端的联系人数据,并修改第二版本号,同时删除ID标识符。

具体地,服务器端添加操作锁,根据客户端发送的变更数据同步服务器端的联系人数据,对第二版本号进行修改,并删除ID标识符,服务器端再进行解除锁操作。

更具体地,对第二版本号的修改可以是对第二版本号加1。

步骤270,服务器端将修改后的第二版本号、所述变更数据的映射关系发送至所述客户端。

具体地,服务器端将修改后的第二版本号、变更数据的服务器身份标识符(serverID)和本地身份标识符(localID)映射关系到客户端。

步骤280,客户端根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

具体地,客户端接收到上述信息,并根据映射关系修改本地数据,将本地对第一版本号进行更新,以使更新后的第一版本号与修改后的第二版本号相同。

为了使本实施例的联系人同步方法更加清楚易懂,以如下示例对本发明做进一步说明。

客户端A的通讯录中包括联系人B的联系人数据,当联系人B的联系人方式改变时,客户端B采用上述步骤210-步骤280使服务器同步联系人B的变更数据,客户端A采用上述步骤110-步骤170同步联系人B的差异数据,从而完成了联系人的同步。

本实施例提供的联系人同步方法,若在客户端出现联系人数据变更,客户端将变更数据、第一版本号和ID标识符推送至服务器端,服务器端对客户端校验通过,并判断是否有操作锁以及第一版本号是否等于第二版本号,当没有操作锁且第一版本号等于第二版本号时对服务器端的数据进行同步,以确保在客户端与服务器端交互数据不丢失且及时更新。

实施例二

请参照图3,本发明第二实施例提供一种联系人同步方法,应用于客户端,本实施例的联系人同步方法是基于Nubia云同步协议与服务器端进行通信,所述方法包括步骤:

步骤310,向服务器端发送联系人数据的第一版本号以及数据拉取请求。

具体地,发起同步流程,将本地联系人数据的第一版本号(例如cVersion)发送给服务器端,同时,发送登录后的token至服务器端,并向服务器端发送数据拉取请求。若第一次发送数据拉取请求,则第一版本号cVersion记为0。

步骤320,接收所述服务器端发送的差异数据、ID标识符以及所述服务器端对所述联系人信息更新的第二版本号。

步骤330,判断所述第二版本号与所述第一版本号是否相同;若是,则进入步骤340,若否,则进入步骤350。

具体地,获取服务器端发送的数据后,判断第二版本号与第一版本号是否相同,如果第二版本号与第一版本号相同且差异数据为空,则说明服务器端没有数据变更,则进入步骤340;如果第二版本号与第一版本号不相同,说明服务器端有数据变更,则进入步骤350。

步骤340,不需要修改本地联系人数据。

步骤350,根据所述差异数据同步本地联系人数据。

具体地,根据服务器端发送的差异数据修改本地数据,并将冲突数据、重复数据进行数据合并,并将本地的第一版本号修改为第二版本号。

步骤360,判断是否有本地联系人变更数据;若是,则进入步骤370,若否,则流程结束。

步骤370,将所述变更数据、第一版本号和ID标识符的推送数据发送至所述服务器端,以使所述服务器端同步联系人数据。

步骤380,接收所述服务器端发送的修改后的第二版本号、所述变更数据的映射关系。

步骤390,根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

本实施例提供的联系人同步方法,通过向服务器端发送联系人数据的第一版本号以及数据拉取请求,接收服务器端发送的差异数据、ID标识符以及服务器端对联系人信息更新的第二版本号,当判定第二版本号与第一版本号不同时,则根据所述差异数据同步本地联系人数据。从而及时、准确地与服务器端数据进行同步更新,提高了整体效率和准确性。

实施例三

请参照图4,本发明第三实施例提供一种联系人同步方法,应用于服务器端,本实施例的联系人同步方法是基于Nubia云同步协议与服务器端进行通信,所述方法包括步骤:

步骤410,接收客户端发送的联系人数据的第一版本号以及数据拉取请求。

步骤420,根据所述数据拉取请求,对所述客户端进行第一校验。

具体地,根据拉取请求,对客户端进行token校验,校验通过,则进入步骤430,校验失败,则流程结束。

步骤430,当校验通过时,根据所述第一版本号查找最新的差异数据,并生成ID标识符。

具体地,根据拉取请求中的第一版本号与token对应的用户ID,查找出第一版本号在服务器端最新版本的差异数据,并生成唯一的ID标识符(例如:SessionId)。

步骤440,将所述差异数据、所述ID标识符以及对所述联系人信息更新的第二版本号发送给所述客户端,当所述客户端判断所述第二版本号与所述第一版本号不相同时,使所述客户端根据所述差异数据同步本地联系人数据。

本实施例提供的联系人同步方法,通过接收客户端发送的第一版本号以及数据拉取请求,当对客户端校验通过时,根据第一版本号查找最新的差异数据并生成ID标识符,并将差异数据、ID标识符以及对联系人信息更新的第二版本号发送给客户端,当客户端判定第二版本号与所述第一版本号不相同时,使客户端根据差异数据同步本地联系人数据,从而准确、及时地更新客户端的数据。

请参照图5,作为对本实施例的进一步改进,当客户端有变更联系人数据时,联系人同步方法还可以包括以下步骤:

步骤510,接收所述客户端发送的联系人变更数据、第一版本号和ID标识符。

步骤520,根据所述ID标识符,对所述客户端进行第二校验。校验通过,则进入步骤530,校验失败,则返回客户端。

步骤530,当校验通过时,判断是否有操作锁;若是,则进入步骤540,若否,则进入步骤550。

步骤540,删除所述ID标识符并向所述客户端发送在预定时间之后重新发送所述推送数据的指令。

具体地,删除客户端发送的ID标识符并告知客户端稍后再重新推送数据。

步骤550,判断所述第二版本号与所述第一版本号是否相同,若相同,则进入步骤560,若不相同,则进入步骤540。

步骤560,根据所述变更数据同步本地联系人数据,并修改所述第二版本号,同时删除ID标识符。

具体地,添加操作锁,根据客户端发送的变更数据同步本地联系人数据,对第二版本号进行修改,并删除ID标识符,之后再进行解除锁操作。

更具体地,对第二版本号的修改可以是对第二版本号加1。

步骤570,将修改后的第二版本号、所述变更数据的映射关系发送至所述客户端,以使所述客户端根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

具体地,将修改后的第二版本号、变更数据的serverID和localID映射关系到客户端,以使客户端根据映射关系修改本地数据,将本地对第一版本号进行更新,以使更新后的第一版本号与修改后的第二版本号相同。

本实施例提供的联系人同步方法,通过接收客户端发送的联系人变更数据、第一版本号和ID标识符,当对客户端校验通过时,判断是否有操作锁以及第一版本号是否等于第二版本号,当没有操作锁且第一版本号等于第二版本号时对本地的联系人数据进行同步,从而确保根据客户端数据的变更,及时地更新本地联系人数据。

实施例四

请参照图6,本发明第四实施例提供一种联系人同步系统,所述系统包括客户端610以及与客户端610通信连接的服务器端620,客户端610与服务器端620基于Nubia云同步协议与服务器端进行通信,其中,

客户端610,用于向服务器端620发送联系人数据的第一版本号以及数据拉取请求。

具体地,客户端610发起同步流程,将本地联系人数据的第一版本号(例如cVersion)发送给服务器端620,同时,客户端610发送登录后的token至服务器端620,并向服务器端620发送数据拉取请求。若客户端610第一次发送数据拉取请求,则第一版本号cVersion记为0。

服务器端620,用于接收数据拉取请求,并对客户端610进行第一校验。

具体地,根据拉取请求,对客户端610进行token校验,校验通过,则进入步骤130,校验失败,则流程结束。

当校验通过时,服务器端620根据第一版本号查找最新的差异数据,并生成ID标识符。

具体地,服务器端620根据第一版本号与token对应的用户ID,查找出第一版本号在服务器端620最新版本的差异数据,并生成唯一的ID标识符(例如:SessionId)。

服务器端620,还用于将差异数据、所述ID标识符以及服务器端620对联系人信息更新的第二版本号发送给所述客户端610。

具体地,服务器端620对联系人信息进行更新后形成第二版本号(例如sVersion),并将差异数据、ID标识符和第二版本号发送给客户端610。

客户端610,还用于判断所述第二版本号与所述第一版本号是否相同。若是,则客户端610不需要修改本地联系人数据。

具体地,客户端610获取服务器端620发送的数据后,判断第二版本号与第一版本号是否相同,如果第二版本号与第一版本号相同且差异数据为空,则说明服务器端620没有数据变更。如果第二版本号与第一版本号不相同,说明服务器端620有数据变更。

若否,根据所述差异数据同步所述客户端610的本地联系人数据。

具体地,根据服务器端620发送的差异数据修改本地数据,并将冲突数据、重复数据进行数据合并,并将本地的第一版本号修改为第二版本号。

本实施例提供的联系人同步系统,若在服务器端620出现联系人数据变更,客户端610向服务器端620发送联系人数据的第一版本号以及数据拉取请求,服务器端620接收所述数据拉取请求,并对所述客户端610进行第一校验,当校验通过时,服务器端620根据第一版本号查找最新的差异数据并生成ID标识符,并将差异数据、ID标识符以及第二版本号发送给客户端610,当客户端610判定第二版本号与第一版本号不同时,在客户端610同步本地联系人的差异数据,以确保在客户端610与服务器端620交互数据不丢失且及时更新。

作为对本实施例的进一步改进,当在客户端610出现联系人变更数据时,服务器端620同步联系人的过程为:

客户端610判定本地有联系人变更数据时,将变更数据、第一版本号和ID标识符的推送数据发送至服务器端620。

根据所述ID标识符,服务器端620对客户端610进行第二校验。

具体地,服务器端620对ID标识符进行校验。

当校验通过时,服务器端620判断是否有操作锁。

若服务器端620判定有操作锁,则删除ID标识符并向客户端610发送在预定时间之后重新发送所述推送数据的指令。

具体地,删除客户端610发送的ID标识符并告知客户端610稍后再重新推送数据。

若服务器端620判定没有操作锁,则进一步判断所述第二版本号与所述第一版本号是否相同。

若服务器端620判定第二版本号与第一版本号相同,则根据变更数据同步所述服务器端620的联系人数据,并修改第二版本号,同时删除ID标识符,若不相同,则删除ID标识符并向客户端610发送在预定时间之后重新发送所述推送数据的指令。

具体地,服务器端620添加操作锁,根据客户端610发送的变更数据同步服务器端620的联系人数据,对第二版本号进行修改,并删除ID标识符,服务器端620再进行解除锁操作。

更具体地,对第二版本号的修改可以是对第二版本号加1。

服务器端620将修改后的第二版本号、所述变更数据的映射关系发送至所述客户端610。

具体地,服务器端620将修改后的第二版本号、变更数据的serverID和localID映射关系到客户端610。

客户端610根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

具体地,客户端610接收到上述信息,并根据映射关系修改本地数据,将本地对第一版本号进行更新,以使更新后的第一版本号与修改后的第二版本号相同。

本实施例提供的联系人同步系统,若在客户端610出现联系人数据变更,客户端610将变更数据、第一版本号和ID标识符推送至服务器端620,服务器端620对客户端610校验通过,并判断是否有操作锁以及第一版本号是否等于第二版本号,当没有操作锁且第一版本号等于第二版本号时对服务器端620的数据进行同步,以确保在客户端610与服务器端620交互数据不丢失且及时更新。

实施例五

请参照图7,为本发明第五实施例提供一种联系人同步装置,应用于客户端,本实施例的联系人同步装置是基于Nubia云同步协议与服务器端进行通信,所述装置包括:

请求模块710,用于向服务器端发送联系人数据的第一版本号以及数据拉取请求。

具体地,请求模块710发起同步流程,将本地联系人数据的第一版本号(例如cVersion)发送给服务器端,同时,发送登录后的token至服务器端,并向服务器端发送数据拉取请求。若第一次发送数据拉取请求,则第一版本号cVersion记为0。

第一接收模块720,用于接收所述服务器端发送的差异数据、ID标识符以及所述服务器端对所述联系人信息更新的第二版本号。

第一判断模块730,用于判断所述第二版本号与所述第一版本号是否相同;若是,则不需要修改本地联系人数据。

具体地,获取服务器端发送的数据后,判断第二版本号与第一版本号是否相同,如果第二版本号与第一版本号相同且差异数据为空,则说明服务器端没有数据变更,则不需要修改本地联系人数据;如果第二版本号与第一版本号不相同,说明服务器端有数据变更,则触发第一同步模块740。

第一同步模块740,用于当第一判断模块730判定第二版本号与第一版本号不相同时,根据所述差异数据同步本地联系人数据。

具体地,第一同步模块740根据服务器端发送的差异数据修改本地数据,并将冲突数据、重复数据进行数据合并,并触发版本号修改模块770将本地的第一版本号修改为第二版本号。

第二判断模块750,用于判断是否有本地联系人变更数据;若是,则触发第一发送模块760。

第一发送模块760,用于将所述变更数据、第一版本号和ID标识符的推送数据发送至所述服务器端,以使所述服务器端同步联系人数据。

第一接收模块720,还用于接收所述服务器端发送的修改后的第二版本号、所述变更数据的映射关系。

版本号修改模块770,用于根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

本实施例提供的联系人同步装置,通过请求模块710向服务器端发送联系人数据的第一版本号以及数据拉取请求,接收服务器端发送的差异数据、ID标识符以及服务器端对联系人信息更新的第二版本号,当判定第二版本号与第一版本号不同时,则根据所述差异数据同步本地联系人数据。从而及时、准确地与服务器端数据进行同步更新,提高了整体效率和准确性。

实施例六

请参照图8,为本发明第五实施例提供一种联系人同步装置,应用于服务器端,本实施例的联系人同步装置是基于Nubia云同步协议与服务器端进行通信,所述装置包括:

第二接收模块810,用于接收客户端发送的联系人数据的第一版本号以及数据拉取请求。

校验模块820,根据所述数据拉取请求,对所述客户端进行第一校验。

具体地,根据拉取请求,校验模块820对客户端进行token校验,校验通过,则触发差异数据查找模块830,用于根据所述第一版本号查找最新的差异数据,并生成ID标识符。

具体地,差异数据查找模块830根据拉取请求中的第一版本号与token对应的用户ID,查找出第一版本号在服务器端最新版本的差异数据,并生成唯一的ID标识符(例如:SessionId)。

第二发送模块840,用于将所述差异数据、所述ID标识符以及对所述联系人信息更新的第二版本号发送给所述客户端,当所述客户端判断所述第二版本号与所述第一版本号不相同时,使所述客户端根据所述差异数据同步本地联系人数据。

本实施例提供的联系人同步装置,通过第二接收模块810接收客户端发送的第一版本号以及数据拉取请求,当校验模块820对客户端校验通过时,差异数据查找模块830根据第一版本号查找最新的差异数据并生成ID标识符,并通过第二发送模块840将差异数据、ID标识符以及对联系人信息更新的第二版本号发送给客户端,当客户端判定第二版本号与所述第一版本号不相同时,使客户端根据差异数据同步本地联系人数据,从而准确、及时地更新客户端的数据。

作为对本实施例的进一步改进,当客户端有变更联系人数据时,第二接收模块810,还用于接收所述客户端发送的联系人变更数据、第一版本号和ID标识符。校验模块820,还用于根据所述ID标识符,对所述客户端进行第二校验。校验通过,则触发第三判断模块850,校验失败,则返回客户端。

第三判断模块850,用于判断是否有操作锁;若是,则触发删除模块860,若否,则触发第四判断模块870。

删除模块860,用于删除所述ID标识符并向所述客户端发送在预定时间之后重新发送所述推送数据的指令。

具体地,删除模块860删除客户端发送的ID标识符并告知客户端稍后再重新推送数据。

第四判断模块870,用于判断所述第二版本号与所述第一版本号是否相同,若相同,则触发第二同步模块880,若不相同,则触发删除模块860删除所述ID标识符并向所述客户端发送在预定时间之后重新发送所述推送数据的指令。

第二同步模块880,用于根据所述变更数据同步本地联系人数据,并修改所述第二版本号,同时触发删除模块860删除ID标识符。

具体地,第二同步模块880先添加操作锁,根据客户端发送的变更数据同步本地联系人数据,对第二版本号进行修改,并触发删除模块860删除ID标识符,之后第二同步模块880再进行解除锁操作。

更具体地,对第二版本号的修改可以是对第二版本号加1。

第二发送模块840,还用于将修改后的第二版本号、所述变更数据的映射关系发送至所述客户端,以使所述客户端根据所述映射关系修改本地数据,并对所述第一版本号进行更新,以使更新后的第一版本号与所述修改后的第二版本号相同。

具体地,第二发送模块840将修改后的第二版本号、变更数据的serverID和localID映射关系到客户端,以使客户端根据映射关系修改本地数据,将本地对第一版本号进行更新,以使更新后的第一版本号与修改后的第二版本号相同。

本实施例提供的联系人同步装置,通过第二接收模块810接收客户端发送的联系人变更数据、第一版本号和ID标识符,当校验模块820对客户端校验通过时,第三判断模块850和第四判断模块870分别判断是否有操作锁以及第一版本号是否等于第二版本号,当没有操作锁且第一版本号等于第二版本号时触发第二同步模块880对本地的联系人数据进行同步,从而确保根据客户端数据的变更,及时地更新本地联系人数据。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器端,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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