即时通讯键-值数据下发方法、服务器、客户端及系统技术方案

技术编号:11023289 阅读:75 留言:0更新日期:2015-02-11 12:15
本发明专利技术涉及一种即时通讯键-值数据下发方法、服务器、客户端及系统,其方法包括:服务器接收客户端在登录时发送的拉取键-值数据的请求包;请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号;根据请求包所携带的参数,选用预设的数据下发机制,向客户端下发全量键-值数据或向客户端下发增量键-值数据或不下发键-值数据,由客户端根据所述服务器的返回结果更新本地缓存数据并展现给用户。本发明专利技术实现了键-值数据的增量下发,减少网络带宽浪费,解决了键-值数据下发过程中网络带宽占用的问题,并保证即时通信客户端和服务器的数据一致性。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种即时通讯键-值数据下发方法、服务器、客户端及系统,其方法包括:服务器接收客户端在登录时发送的拉取键-值数据的请求包;请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号;根据请求包所携带的参数,选用预设的数据下发机制,向客户端下发全量键-值数据或向客户端下发增量键-值数据或不下发键-值数据,由客户端根据所述服务器的返回结果更新本地缓存数据并展现给用户。本专利技术实现了键-值数据的增量下发,减少网络带宽浪费,解决了键-值数据下发过程中网络带宽占用的问题,并保证即时通信客户端和服务器的数据一致性。【专利说明】即时通讯键-值数据下发方法、服务器、客户端及系统
本专利技术涉及即时通讯
,尤其涉及一种即时通讯键-值数据下发方法、月艮务器、客户端及系统。
技术介绍
在即时通信领域,许多业务场景需要使用到key-value (键-值)数据下发技术,例如某个用户登录即时通讯客户端,需要从服务器拉取好友列表,好友列表包括好友的账号和描述账号属性的数据(例如成为好友的时间),该账号作为唯一标识可以抽象为key,与账号相关联的数据抽象为value,好友列表中的每个好友对应一条键-值数据记录,这些键-值数据记录则构成该用户的键-值数据。 目前,在即时通信领域,通常采用以下两种方式实现键-值数据下发: 1、用户每次登录即时通信客户端时,从服务器拉取全量的键-值数据。 2、为键-值数据附加一个序列号,服务器的键-值数据每变化一次,序列号加I。在客户端首次登录时,将键-值数据和序列号从服务器拉取下来并缓存在客户端,客户端下次登录时,将缓存的序列号提交给服务器,服务器判断客户端提交的序列号和本地的序列号是否一致,如果一致,服务器则不下发键-值数据,如果不一致,服务器下发全量的键-值数据和最新的序列号,客户端接收到后缓存在本地。 上述两种键-值数据下发方式中,对于即时通信客户端每次登录就从服务器拉取全量键-值数据的方案,其实现简单,客户端不需要缓存服务器的数据,但是大多数时候用户的键-值数据都没有变化,若每次登录都拉取全量的键-值数据,则对于具有海量用户的即时通信服务,会导致极大的网络带宽浪费。 对于为键-值数据附加一个序列号的方法,虽然能避免每次客户端登录都全量拉取键-值数据的网络带宽浪费,但是,随着即时通信服务的发展,用户的键-值数据越来越丰富,假定某个用户有5000条键-值数据记录,每条键-值数据记录平均长度为20字节,则键-值数据的总长度约为100KB,只要其中一条20字节长的键-值数据变化,序列号加1,则下次客户端登录时要拉取100KB的全量数据,而其中只有20个字节的数据真正需要下发,由此造成网络带宽利用率很低。
技术实现思路
本专利技术实施例提供一种即时通讯键-值数据下发方法、服务器、客户端及系统,旨在实现键-值数据的增量下发,提高网络带宽利用率。 本专利技术实施例提出一种即时通讯键-值数据下发方法,包括: 服务器接收客户端在登录时发送的拉取键-值数据的请求包;所述请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号; 根据所述请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键-值数据或向所述客户端下发增量键-值数据或不下发键-值数据,由所述客户端根据所述服务器的返回结果更新本地缓存数据并展现给用户。 本专利技术实施例还提出一种下发即时通讯键-值数据的服务器,包括: 请求接收模块,用于接收客户端在登录时发送的拉取键-值数据的请求包;所述请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号; 下发处理模块,用于根据所述请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键-值数据或向所述客户端下发增量键-值数据或不下发键-值数据,由所述客户端根据所述服务器的返回结果更新本地缓存数据并展现给用户。 本专利技术实施例还提出一种即时通讯键-值数据下发方法,包括: 发送拉取键-值数据的请求包;所述请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号; 接收服务器根据所述请求包所携带的参数下发的全量键-值数据或增量键-值数据; 根据所述服务器的返回结果更新本地缓存数据。 本专利技术实施例还提出一种下发即时通讯键-值数据的系统,包括客户端和如上所述的服务器,其中: 所述客户端,用于在登录时向所述服务器发送拉取键-值数据的请求包;以及根据所述服务器的返回结果,更新本地缓存数据并展现给用户。 本专利技术实施例提出的一种即时通讯键-值数据下发方法、服务器、客户端及系统,服务器在接收客户端在登录时发送的拉取键-值数据的请求包时;根据所述请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键-值数据或向所述客户端下发增量键-值数据或不下发键-值数据,由客户端根据服务器的返回结果更新本地缓存数据并展现给用户,其中,客户端发送的请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号,从而实现了键-值数据的增量下发,减少网络带宽浪费,解决了键-值数据下发过程中网络带宽占用的问题,并保证即时通信客户端和服务器的数据一致性。 【专利附图】【附图说明】 图1是本专利技术即时通讯键-值数据下发方法第一实施例的流程示意图; 图2是本专利技术实施例中根据请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键-值数据或向所述客户端下发增量键-值数据或不下发键-值数据的流程示意图; 图3a是本专利技术实施例中服务器确定上次拉取以来修改或新增的键-值数据的一种流程示意图; 图3b是本专利技术实施例中服务器确定上次拉取以来修改或新增的键-值数据的另一种流程示意图; 图3c是本专利技术实施例中服务器确定并发送上次拉取以来删除过的键-值数据的key的一种流程示意图; 图4是本专利技术即时通讯键-值数据下发方法第二实施例的流程示意图; 图5是本专利技术下发即时通讯键-值数据的服务器较佳实施例的功能模块示意图; 图6是本专利技术下发即时通讯键-值数据的服务器较佳实施例中下发处理模块的功能丰旲块不意图; 图7是本专利技术下发即时通讯键-值数据的系统较佳实施例的功能模块示意图。 为了使本专利技术的技术方案更加清楚、明了,下面将结合附图作进一步详述。 【具体实施方式】 本专利技术实施例解决方案主要是:服务器在接收客户端在登录时发送的拉取键-值数据的请求包时;根据请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键-值数据或向所述客户端下发增量键-值数据或不下发键-值数据,由客户端根据服务器的返回结果更新本地缓存数据并展现给用户,其中,客户端发送的请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号,由此可以实现键-值数据的增量下发,减少网络带宽浪费,并保证即时通信客户端和服务器的数据一致性。 本专利技术实施例中所涉及的技术术语包括: 全量下发:服务器向客户端下发用户的键-值数据时,将所有的键-值数据记录都下发。 增量下发:服务器向客户端下发用户的键-值数据时,只下发新增、修改和删除的键-值数据记录。 如图1所示,本专利技术第一实施例从服务器侧提出一种即时通讯键-值数据下发方法,包括: 步骤S1本文档来自技高网
...

【技术保护点】
一种即时通讯键‑值数据下发方法,其特征在于,包括:服务器接收客户端在登录时发送的拉取键‑值数据的请求包;所述请求包至少携带有全量拉取时间戳、增量拉取时间戳和数据变更序列号;根据所述请求包所携带的参数,选用预设的数据下发机制,向所述客户端下发全量键‑值数据或向所述客户端下发增量键‑值数据或不下发键‑值数据,由所述客户端根据所述服务器的返回结果更新本地缓存数据并展现给用户。

【技术特征摘要】

【专利技术属性】
技术研发人员:李艳国廖念波陈国林舒星
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1