传输离线数据的方法、装置和系统转让专利

申请号 : CN200910082111.0

文献号 : CN101534208B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋雷

申请人 : 腾讯科技(北京)有限公司

摘要 :

本发明公开了一种传输离线数据的方法、装置和系统,属于即时通信技术领域。接收离线数据的方法包括:向群服务器请求拉取离线数据;根据群服务器返回的唯一标识和唯一验证码,向群成员请求离线数据;在该群成员验证成功后接收其返回的离线数据。发送离线数据的方法包括:接收群成员发来的获取离线数据的请求,对其中携带的唯一标识和唯一验证码进行验证,成功则发送离线数据给群成员,失败则结束。接收离线数据的装置包括:请求模块和接收模块。发送离线数据的装置包括:接收模块、验证和发送模块。所述系统包括第一客户端、群服务器和第二客户端。本发明提高了获取离线数据的成功率。

权利要求 :

1.一种接收离线数据的方法,其特征在于,所述方法包括:向群服务器请求拉取离线数据;

接收群服务器返回的所述离线数据的唯一标识和唯一验证码;

根据所述标识和验证码向自身所在群中的群成员请求离线数据;

如果所述群成员已成功拉取所述离线数据,则接收该群成员在对所述标识和验证码验证成功后返回的离线数据。

2.根据权利要求1所述的接收离线数据的方法,其特征在于,向群服务器请求拉取离线数据之后,还包括:如果群服务器保存有离线数据,则接收群服务器返回的离线数据和所述离线数据的标识和验证码,流程结束;

如果群服务器已删除离线数据,则执行接收群服务器返回的所述离线数据的唯一标识和唯一验证码的步骤。

3.根据权利要求1所述的接收离线数据的方法,其特征在于,所述离线数据的唯一验证码为利用MD5算法对离线数据进行计算得到的。

4.根据权利要求1所述的接收离线数据的方法,其特征在于,接收该群成员在对所述标识和验证码验证成功后返回的离线数据之后,还包括:在本地保存收到的离线数据、标识和验证码。

5.一种接收离线数据的装置,其特征在于,所述装置包括:请求模块,用于向群服务器请求拉取离线数据,在群服务器返回离线数据的唯一标识和唯一验证码后,根据所述标识和验证码向所述装置所在群中的群成员请求所述离线数据;

接收模块,用于在所述请求模块向群服务器发起请求后,接收所述群服务器返回的离线数据的唯一标识和唯一验证码,在所述请求模块向群成员发起请求后,如果该群成员已成功拉取所述离线数据,则接收该群成员在对所述标识和验证码验证成功后返回的所述离线数据。

6.根据权利要求5所述的接收离线数据的装置,其特征在于,所述接收模块还用于如果群服务器保存有所述离线数据,则接收群服务器返回的所述离线数据和所述离线数据的标识和验证码。

7.根据权利要求5所述的接收离线数据的装置,其特征在于,所述装置还包括:存储模块,用于保存所述接收模块收到的所述标识和验证码,以及所述离线数据。

8.一种传输离线数据的系统,其特征在于,所述系统包括第一客户端、群服务器和第二客户端;

所述第一客户端,用于向所述群服务器请求拉取离线数据,接收所述群服务器返回的所述离线数据的唯一标识和唯一验证码,根据所述标识和验证码向所述第二客户端请求所述离线数据,如果所述第二客户端已成功拉取所述离线数据,则接收所述第二客户端在对所述标识和验证码验证成功后返回的所述离线数据;

所述群服务器,用于接收所述第一客户端发来的拉取所述离线数据的请求,返回所述离线数据的唯一标识和唯一验证码给所述第一客户端;

所述第二客户端,用于接收所述第一客户端根据所述标识和验证码发来的请求,对所述标识和验证码进行验证,如果验证成功,则将本地保存的所述离线数据发送给所述第一客户端。

说明书 :

传输离线数据的方法、装置和系统

技术领域

[0001] 本发明涉及即时通信技术领域,特别涉及一种接收离线数据的方法和装置、发送离线数据的方法和装置、以及传输离线数据的系统。

背景技术

[0002] 目前,IM(Instant Messaging,即时通信)技术已经被广泛应用。它能够提供实时消息收发、状态显示、语音/视频、文件传输、文件共享和远程协助等一系列即时信息的在线处理功能。群是IM技术里一项非常重要的应用,主要用于多人聊天。在多人聊天中,群服务器充当消息中转的角色,它每时每刻都承载着海量的数据,包括文本消息、图片和文件等等。对于文本消息,由于数据量不大,因此通常会被缓存在服务器中,而且可以进行较长时间的存储,等到用户上线的时候,再把缓存的文本消息发给用户。对于图片和文件等数据量比较庞大的消息,由于需要较大的存储空间,很容易将服务器的容量耗光,因此这类消息在服务器保存的时间是有限制的,超过一定的时间,服务器就会将它们删除掉。 [0003] 在用户离线的时候,服务器保存图片和文件等类消息的时间可能过长,如果超过服务器的保存时间,则服务器会删除这类消息。当用户再次登录时,则无法正常接收到这类消息。如用户在上线后发现,很多离线图片接收不成功,从而导致丢失掉会话中很多精彩的部分。

发明内容

[0004] 本发明实施例提供了一种接收离线数据的方法和装置、发送离线数据的方法和装置、以及传输离线数据的系统,提高了离线数据接收的成功率。所述技术方案如下: [0005] 一种接收离线数据的方法,所述方法包括:
[0006] 向群服务器请求拉取离线数据;
[0007] 接收群服务器返回的所述离线数据的唯一标识和唯一验证码; [0008] 根据所述标识和验证码向自身所在群中的群成员请求离线数据; [0009] 如果所述群成员已成功拉取所述离线数据,则接收该群成员在对所述标识和验证码验证成功后返回的离线数据。
[0010] 向群服务器请求拉取离线数据之后,还包括:
[0011] 如果群服务器保存有离线数据,则接收群服务器返回的离线数据和所述离线数据的标识和验证码,流程结束;
[0012] 如果群服务器已删除离线数据,则执行接收群服务器返回的所述离线数据的唯一标识和唯一验证码的步骤。
[0013] 所述离线数据的唯一验证码为利用MD5算法对离线数据进行计算得到的。 [0014] 接收该群成员在对所述标识和验证码验证成功后返回的离线数据之后,还包括: [0015] 在本地保存收到的离线数据、标识和验证码。
[0016] 一种接收离线数据的装置,所述装置包括:
[0017] 请求模块,用于向群服务器请求拉取离线数据,在群服务器返回离线数据的唯一标识和唯一验证码后,根据所述标识和验证码向所述装置所在群中的群成员请求所述离线数据;
[0018] 接收模块,用于在所述请求模块向群服务器发起请求后,接收所述群服务器返回的离线数据的唯一标识和唯一验证码,在所述请求模块向群成员发起请求后,如果该群成员已成功拉取所述离线数据,则接收该群成员在对所述标识和验证码验证成功后返回的所述离线数据。
[0019] 所述接收模块还用于如果群服务器保存有所述离线数据,则接收群服务器返回的所述离线数据和所述离线数据的标识和验证码。
[0020] 所述装置还包括:
[0021] 存储模块,用于保存所述接收模块收到的所述标识和验证码,以及所述离线数据。 [0022] 一种传输离线数据的系统,所述系统包括第一客户端、群服务器和第二客户端; [0023] 所述第一客户端,用于向所述群服务器请求拉取离线数据,接收所述群服务器返回的所述离线数据的唯一标识和唯一验证码,根据所述标识和验证码向所述第二客户端请求所述离线数据,如果所述第二客户端已成功拉取所述离线数据,则接收所述第二客户端在对所述标识和验证码验证成功后返回的所述离线数据;
[0024] 所述群服务器,用于接收所述第一客户端发来的拉取所述离线数据的请求,返回所述离线数据的唯一标识和唯一验证码给所述第一客户端;
[0025] 所述第二客户端,用于接收所述第一客户端根据所述标识和验证码发来的请求,对所述标识和验证码进行验证,如果验证成功,则将本地保存的所述离线数据发送给所述第一客户端。
[0026] 本发明实施例通过本发明实施例提供的上述技术方案,通过从群服务器获取离线数据的标识和验证码,并向群内的已成功拉取该离线数据的群成员请求并接收该离线数据,极大地提高了获取离线数据的成功率,解决了由于群服务器受承载能力的限制删除了离线数据后而导致无法获取离线数据的问题,实现了成功获取离线数据。而且,通过P2P方式与群成员进行交互获得离线数据,避免了给群服务器增加压力和负担,群成员之间P2P互传数据,容易实现,灵活方便,满足了群用户希望能够成功获取离线数据的需求,还可以一定程度地节省群成员与群服务器之间的带宽。采用验证码对发起请求的群成员进行验证,可以提高数据交互的安全性,避免受到黑客攻击。
[0027] 附图说明
[0028] 图1是本发明实施例提供的接收离线数据的方法一种流程图;
[0029] 图2是本发明实施例提供的接收离线数据的方法另一种流程图; [0030] 图3是本发明实施例提供的发送离线数据的方法流程图;
[0031] 图4是本发明实施例提供的接收离线数据的装置结构图;
[0032] 图5是本发明实施例提供的发送离线数据的装置结构图;
[0033] 图6是本发明实施例提供的传输离线数据的系统结构图。

具体实施方式

[0034] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0035] 参见图1,本发明实施例提供了一种接收离线数据的方法,包括: [0036] 步骤101:向群服务器请求拉取离线数据;
[0037] 本发明实施例中,离线数据是指在用户离线时在用户所在群内发布的数据,包括但不限于:文本消息、图片和其他类型的文件,如word文档、pdf文件和rar文件等等。 [0038] 步骤102:接收群服务器返回的该离线数据的唯一标识和唯一验证码; [0039] 标识和验证码是群服务器为离线数据分配的,而且均是唯一的,即每个离线数据都有一个标识,且互不相同,每个离线数据也都有一个验证码,且互不相同。标识是用来代表离线数据的,验证码是用来对请求者请求的离线数据进行验证的,可以防止黑客攻击。 [0040] 步骤103:根据标识和验证码向自身所在群中的群成员请求离线数据; [0041] 通常,一个群中会有多个群成员,当群内有数据发布时,在线的群成员会成功地接收该数据,而不在线的群成员则无法接收,只能等到再次登录时从群服务器拉取,因此该数据对于离线的群成员而言成为离线数据。在本实施例中,当离线的群成员对离线数据发起请求时,由于群服务器已经将该离线数据删除掉,因此返回该离线数据的标识和验证码给发起请求的群成员。发起请求的群成员在向其他群成员请求该离线数据时,可以向群内的任一群成员发起请求,如果该被请求的群成员也没有成功拉取该离线数据,则发起请求的群成员可以继续向其他群成员请求,直到有群成员成功拉取过该离线数据或者群内的成员均被请求过为止。
[0042] 步骤104:如果被请求的群成员已成功拉取离线数据,则接收该群成员在对标识和验证码验证成功后返回的离线数据。
[0043] 由于验证码可以唯一标识一个离线数据,因此为了提高安全性,防止黑客攻击,收到请求的群成员会根据该验证码进行验证,在验证成功后,返回已保存的该离线数据给发起请求的群成员,从而使发起请求的群成员能够成功地获取该离线数据。 [0044] 有一点值得说明的是,本发明实施例中涉及到群成员均是指使用IM软件的客户端,包括发起请求的群成员和其他群成员,群成员之间的交互是指不同的客户端之间的交互。
[0045] 下面以一个具体的实例详细说明上述流程。参见图2,本发明实施例还提供了一种接收离线数据的方法,具体包括:
[0046] 步骤201:群成员A登录系统,状态从离线切换到在线,向群服务器请求拉取离线数据。
[0047] 步骤202:群服务器判断是否还保存有该离线数据,如果是,则执行步骤203;否则,执行步骤204。
[0048] 步骤203:群服务器将保存的该离线数据返回给群成员A,并且返回该离线数据的标识和验证码,流程结束。
[0049] 群成员A保存该离线数据以及标识和验证码,可以方便在后续过程中给群内的其他群成员提供该离线数据,该标识和验证码用于在给其他群成员提供离线数据时进行验证。
[0050] 步骤204:群服务器返回该离线数据的唯一标识和唯一验证码给群成员A。 [0051] 优选地,群服务器给离线数据分配的验证码可以是利用MD5算法计算得到的,由于MD5算法计算得到的验证码,具有不可逆性,因此非法者即使得到该验证码后,也是无法还原出离线数据的,从而可以保护离线数据不受到攻击。
[0052] 本发明实施例不排除采用其他算法生成离线数据的验证码,只要生成的验证码是唯一的且不可逆的即可。
[0053] 步骤205:群成员A收到该标识和验证码后,根据该标识和验证码向自身所在群中的任一群成员B请求该离线数据,即可以在该请求消息中携带该标识和验证码; [0054] 步骤206:群成员B收到该请求后,如果已经成功拉取该离线数据,即保存有该离线数据,则对群成员A发来的标识和验证码进行验证,如果验证成功,则执行步骤207;如果验证失败,则执行步骤208。
[0055] 步骤207:群成员B将保存的该离线数据返回给群成员A,群成员A接收该离线数据,流程结束。
[0056] 步骤208:群成员B返回失败消息给群成员A,流程结束。
[0057] 其中,如果群成员B没有成功拉取该离线数据,则群成员A可以继续向群内的其他群成员请求该离线数据,该请求及验证的过程与上述步骤205~207的过程相同,不再赘述。如果该群内成功拉取该离线数据的群成员C给群成员A提供了该离线数据,则流程结束,如果群内的成员均无法提供该离线数据给群成员A,则群成员A获取离线数据失败,流程结束。
[0058] 群成员A成功获取离线数据后,进一步地,还在本地保存收到的该离线数据、以及该离线数据的标识和验证码,从而可以以后为其他群成员提供该离线数据。 [0059] 参见图3,本发明实施例还提供了一种发送离线数据的方法,包括: [0060] 步骤301:接收自身所在群内的群成员发来的获取离线数据的请求,该请求中携带有该离线数据的唯一标识和唯一验证码;
[0061] 步骤302:对该标识和验证码进行验证,如果验证成功,则执行步骤303;如果验证失败,则流程结束;
[0062] 步骤303:将本地保存的离线数据发送给群成员,流程结束。
[0063] 本实施例提供的方法的执行主体是上述群内的群成员,即被请求的群成员,而且是已经成功拉取过该离线数据的群成员,因此可以给发起请求的群成员提供该离线数据。 [0064] 参见图4,本发明实施例还提供了一种接收离线数据的装置,包括: [0065] 请求模块401,用于向群服务器请求拉取离线数据,在群服务器返回离线数据的唯一标识和唯一验证码后,根据该标识和验证码向上述装置所在群中的群成员请求该离线数据;
[0066] 接收模块402,用于在请求模块401向群服务器发起请求后,接收群服务器返回的离线数据的唯一标识和唯一验证码,在请求模块401向群成员发起请求后,如果该群成员已成功拉取该离线数据,则接收该群成员在对该标识和验证码验证成功后返回的该离线数据。
[0067] 其中,接收模块402还用于如果群服务器保存有该离线数据,则接收群服务器返回的该离线数据和该离线数据的标识和验证码。
[0068] 进一步地,上述装置还包括:
[0069] 存储模块403,用于保存接收模块402收到的标识和验证码,以及离线数据。 [0070] 本实施例提供的上述装置具体为发起请求的群成员的客户端。 [0071] 参见图5,本发明实施例还提供了一种发送离线数据的装置,包括: [0072] 接收模块501,用于接收上述装置所在群内的群成员发来的获取离线数据的请求,该请求中携带有离线数据的唯一标识和唯一验证码;
[0073] 验证和发送模块502,用于对接收模块501收到的标识和验证码进行验证,如果验证成功,则将本地保存的离线数据发送给群成员,如果验证失败,则流程结束。 [0074] 参见图6,本发明实施例还提供了一种传输离线数据的系统,包括第一客户端601、群服务器602和第二客户端603;
[0075] 第一客户端601,用于向群服务器602请求拉取离线数据,接收群服务器602返回的离线数据的唯一标识和唯一验证码,根据标识和验证码向第二客户端603请求离线数据,如果第二客户端603已成功拉取离线数据,则接收第二客户端603在对标识和验证码验证成功后返回的离线数据;
[0076] 群服务器602,用于接收第一客户端601发来的拉取离线数据的请求,返回离线数据的唯一标识和唯一验证码给第一客户端601;
[0077] 第二客户端603,用于接收第一客户端601根据标识和验证码发来的请求,对标识和验证码进行验证,如果验证成功,则将本地保存的离线数据发送给第一客户端601。 [0078] 本实施例中,第一客户端601是指发起获取离线数据请求的群成员所在的客户端,第二客户端603是指收到该请求的群成员所在的客户端,发起请求的群成员和收到请求的群成员 属于同一个群,群服务器602是为该群提供服务的。
[0079] 本发明实施例提供的上述技术方案,通过从群服务器获取离线数据的标识和验证码,并向群内的已成功拉取该离线数据的群成员请求并接收该离线数据,极大地提高了获取离线数据的成功率,解决了由于群服务器受承载能力的限制删除了离线数据后而导致无法获取离线数据的问题,实现了成功获取离线数据。而且,通过P2P方式与群成员进行交互获得离线数据,避免了给群服务器增加压力和负担,群成员之间P2P互传数据,容易实现,灵活方便,满足了群用户希望能够成功获取离线数据的需求,还可以一定程度地节省群成员与群服务器之间的带宽。采用验证码对发起请求的群成员进行验证,可以提高数据交互的安全性,避免受到黑客攻击。
[0080] 本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0081] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。