一种用于即时通讯中传输文件的方法及装置制造方法

文档序号:7980521阅读:445来源:国知局
一种用于即时通讯中传输文件的方法及装置制造方法
【专利摘要】本发明公开了一种用于即时通讯中传输文件的方法,包括:接收用户的指示信息,所述指示信息指示第一即时通讯IM客户端将文件传输给至少一个第二IM客户端;所述第一IM客户端将所述文件切分为多个文件切片,并将所述文件的文件切片传输到第一服务器;所述第一IM客户端向所述至少一个第二IM客户端传输所述文件的文件索引信息;所述第二IM客户端根据所述文件索引信息,至少从所述第一IM客户端和所述第一服务器获得所述文件的文件切片。本发明还公开了一种用于即时通讯中传输文件的装置。通过本发明提供的技术方案,能够快速、高效的进行文件传输。
【专利说明】—种用于即时通讯中传输文件的方法及装置
【技术领域】
[0001]本发明涉及即时通讯【技术领域】,特别是涉及一种用于即时通讯中传输文件的方法
及装置。
【背景技术】
[0002]即时通讯(Instant Messenger,简称IM)是一种基于互联网的即时交流消息的服务。因为即时通讯的快速、功能丰富、社交网络覆盖范围广,所以越来越受到广大用户的喜爱。目前,用户不但通过即时通讯工具进行信息交流,而且通过即时通讯工具进行文件传输的需求也越来越大。
[0003]目前通过即时通讯工具进行文件传输的技术主要有两种,一种是一对一用户之间的单一传输,比如頂客户端A向IM客户端B传输文件。这种一对一的传输,接收方只从发送方获得文件,如果发送方和接收方之间的带宽不足或者基于某种原因出现链路问题,那么传输效率会比较低,甚至会出现传输不成功的问题。
[0004]还有一种就是用户上传文件到某个群共享空间,该群的其它用户等待整个文件全部上传完成后,再到群共享空间中进行下载。这种传输方式本质上是发送方用户先将文件传输到一个共享服务器上,等待传输完毕后,该群中的其它用户(比如用户B、C、D)再分别去该共享服务器上逐一下载,这种通过群共享空间向多个用户传输文件的方式,一是传输效率仍然比较低,二是受群的限制,不是本群用户无法接收到相应文件。
[0005]因此,迫切需要本领域技术人员解决的问题就在于,在即时通讯中,如何能够方便、快速高效的进行文件传输。

【发明内容】

[0006]本发明提供了一种用于即时通讯中向用户传输文件的方法及装置,能够快速、高效的进行文件传输。
[0007]本发明提供了如下方案:
[0008]一种用于即时通讯中传输文件的方法,包括:接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二頂客户端;所述第一頂客户端将所述文件切分为多个文件切片,并将所述文件的文件切片传输到第一服务器;所述第一 IM客户端向所述至少一个第二頂客户端传输所述文件的文件索引信息;所述第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件的文件切片。
[0009]可选的,当所述至少一个第二頂客户端为多个时,所述方法还包括:所述第二頂客户端通报各自对所述文件的文件切片的已接收信息,并获知其它所述第二 IM客户端对所述文件的文件切片的已接收信息;所述第二頂客户端根据各自获知的其它第二頂客户端对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。
[0010]可选的,还包括:所述第二頂客户端从网络侧具有所述文件的其他服务器获得所述文件。
[0011]可选的,所述第二 IM客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片包括:如果所述第一頂客户端向所述第二頂客户端传输所述文件索引信息时,所述第二頂客户端处于离线状态,则待所述第二頂客户端上线后,查看所述第一頂客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息至少从所述第一頂客户端和所述第一服务器获得所述文件的文件切片。
[0012]可选的,所述第二 IM客户端根据所述文件索引信息,至少从所述第一服务器获得所述文件切片包括:所述第二頂客户端待所述第一服务器接收到至少一个完整的所述文件切片后,从所述第一服务器获得所述第一服务器已经接收到的所述文件的文件切片。
[0013]可选的,所述第二 IM客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片包括:所述第二頂客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件不同部分的文件切片。
[0014]可选的,所述接收用户的指示信息,所述指示信息指示第一 IM客户端将文件传输给至少一个第二頂客户端包括:接收用户需要通过即时通讯工具传输文件的第一指示信息;所述第一指示信息触发调用第一 IM客户端的信息,为所述用户提供可作为所述文件接收方的第二 IM客户端的候选信息;接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二頂客户端。
[0015]可选的,所述接收用户的指示信息,所述指示信息指示第一 IM客户端将文件传输给至少一个第二頂客户端包括:通过第一頂客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件;接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二頂客户端。
[0016]一种用于即时通讯中传输文件的装置,包括:指示单元,用于接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二頂客户端;切分单元,用于所述第一 IM客户端将所述文件切分为多个文件切片,并将所述文件的文件切片陆续传输到第一服务器;索引单元,用于所述第一頂客户端向所述至少一个第二頂客户端传输所述文件的文件索引信息;第一文件获得单元,用于所述第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件的文件切片。
[0017]可选的,当所述至少一个第二頂客户端为多个时,还包括:信息通报单元,用于所述第二 IM客户端通报各自对所述文件的文件切片的已接收信息,并获知其它所述第二 IM客户端对所述文件的文件切片的已接收信息;第二文件获得单元,用于所述第二 IM客户端根据各自获知的其它第二 IM客户端对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。
[0018]可选的,还包括:第三文件获得单元,用于所述第二頂客户端从网络侧具有所述文件的其他服务器获得所述文件。
[0019]可选的,所述第一文件获得单元包括:离线文件获得子单元,用于如果所述第一IM客户端向所述第二 IM客户端传输所述文件索引信息时,所述第二 IM客户端处于离线状态,则待所述第二頂客户端上线后,查看所述第一頂客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息至少从所述第一 IM客户端和所述服务器分别获得所述文件的文件切片。[0020]可选的,所述第一文件获得单元包括:服务器文件获得子单元,用于所述第二 IM客户端待所述第一服务器接收到至少一个完整的所述文件切片后,从所述第一服务器获得所述第一服务器已接收到的所述文件的文件切片。
[0021]可选的,所述第一文件获得单元,具体用于所述第二 IM客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件不同部分的文件切片。
[0022]可选的,所述指示单元具体包括:第一指示单元,用于接收用户需要通过即时通讯工具传输文件的第一指示信息;触发调用单元,用于在接收到所述第一指示信息时触发调用第一 IM客户端的信息,为所述用户提供可作为所述文件接收方的第二 IM客户端的候选信息;接收方指示单元,用于接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二頂客户端。
[0023]可选的,所述指示单元具体包括:第三指示单元,用于通过第一頂客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件;第四指示单元,用于接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二 IM客户端。
[0024]根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0025]通过本发明实施例,先由作为发送方的第一頂客户端将文件进行切分,并且将切分后的文件切片传输到第一服务器,并且将待传输文件的文件索引信息发送给用户指示的接收方,进而,接收方可以根据文件索引信息,一方面从第一服务器获得所需的文件切片,另一方面还从第一頂客户端获得所需的文件切片。因此,因此无论接收方是一个,还是多个,都大大提高了只单独从一个文件源获得文件的传输效率。而且,由于作为发送方的第一頂客户端在发送待传输文件之前,会先将待传输文件切分为多个文件切片,并发送到第一服务器上,因此第一服务器待接收到一个完整的文件切片之后就能为第二頂客户端(无论是一个还是多个)提供已接收的文件切片,而不必等接收到全部文件之后才能提供给其他有需要的客户端,因此几乎能达在第一頂客户端传输文件的过程中(即文件还没有传输完毕),第二頂客户端已经开始接收该文件的技术效果,因此相对必须先把整个文件全部发送到某服务器后,作为接收方的第二 IM客户端才能开始下载,大大提高了文件传输效率。
【专利附图】

【附图说明】
[0026]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027]图1是本发明实施例提供的系统环境示意图;
[0028]图2是本发明提供的一种用于实现即时通讯中传输文件的方法第一实施流程图;
[0029]图3是本发明提供的一种用于即时通讯中传输文件的装置实施例示意图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0031]为了更清楚的介绍本发明实施例的技术方案,下面将结合应用本发明实施例的系统环境示意图,来介绍本发明用于实现即时通讯中传输文件的方法实施例的技术方案。
[0032]请先参阅图1,其为应用本发明实施例的系统环境示意图。在本系统环境中包括一个第一頂客户端110,多个第二頂客户端120,以及第一服务器130、第二服务器140、第三服务器150和第四服务器160,它们都与互联网相连。请参阅图2,其为本发明提供的一种用于实现即时通讯中传输文件的方法第一实施流程图。
[0033]步骤210:接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二 IM客户端。
[0034]在很多情况下,一个IM用户都有将同一文件传输给一个或多个IM用户的需求,在即时通讯领域更是如此。作为传输文件接收方的至少一个第二頂客户端,可以是用户直接选择的一个或多个第二頂客户端,也可以是用户选择某个用户群,因为一个用户群中就包括多个第二頂客户端。或者,还可以是既选择一些单独的第二頂客户端作为文件接收方,又选择一个或几个群(每个群均包含多个第二頂客户端)作为文件的接收方。
[0035]在具体的实际应用中,用户指示第一 IM客户端将文件传输给至少一个第二 IM客户端的方式有很多种,本发明实施例对此并没有限制,下面仅给出两种比较常见的实现方式示例。
[0036]第一种示例,用户在本地选择了某一文件,希望将该文件通过即时通讯工具传输(也可以称为“分享”)给至少一个用户。具体而言,首先接收用户需要通过即时通讯工具传输文件的第一指示信息,所述第一指示信息触发调用第一 IM客户端的信息,为所述用户提供可作为所述文件接收方的第二 IM客户端的候选信息;然后接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二頂客户端。
[0037]本领域技术人员可以理解,在具体实现时产品形态、设计多种多样,因此在具体实现时通过何种方式、在哪里接收用户的第一指示信息、第二指示信息,本发明实施例并没有限制。只要能让第一頂客户端知道用户需要通过即时通讯工具传输文件,然后通过调用第一頂客户端的信息,向用户提供可以作为文件接收方的第二頂客户端的候选信息即可,让用户选择最终作为接收方的至少一个第二 IM客户端即可。比如在图1的系统环境下,用户选择了某一文件,点击右键弹出右键菜单,用户选中右键菜单的一项(比如是个类似分享的功能按钮选项),选中该项就表明用户需要通过即时通讯工具传输该文件;然后触发调用第一頂客户端110的信息(如果此时还没有启动第一 IM客户端110,则需要先启动第一 IM客户端110,然后才能调用其中的信息),比如调出用户的好友等信息,让用户选择希望把文件传输给哪些好友(比如用户选择了一个或多个第二 I M客户端120)。
[0038]第二种示例,某一用户已经启动了即时通讯客户端程序,在即时通讯的过程中,希望向一个或多个用户传输同一文件。具体而言,通过第一頂客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件;接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二 IM客户端。需要说明的是,是先接收第三指示信息还是先接收第四指示信息,并没有限制,根据实际情况可以不同,比如第一 IM客户端打开了与某一个第二 IM客户端之间的交互窗口,或者打开了与某个群(包括多个第二頂端)的交互窗口,然后从该交互窗口的某个入口选择了待传输的文件,那么就可以认为第一頂客户端是希望将该文件传输给交互窗口涉及的那个第二 I M客户端或者涉及的多个第二 I M客户端。比如在图1所述的系统环境下,用户可以先指示希望将文件传输给哪些第二 I M客户端120,然后再指示希望传输的是哪一文件;也可以先指示传输哪一文件,再指示要传输给哪些第二 IM客户端120。同理,本领域技术人员可以理解,在具体实现时产品形态、设计多种多样,因此在具体实现时通过何种方式、在哪里接收用户的第三指示信息和第四指示信息,本发明实施例并没有限制。
[0039]步骤220:第一 IM客户端将所述文件切分为多个文件切片,并将所述文件的文件切片传输到第一服务器。
[0040]第一 IM客户端可以将待传输的文件先传输到一服务器,进而该服务器也成为一个该文件的提供源。例如在图1所示的系统环境下,具体的实现方案可以是:第一 IM客户端HO将待传输的文件切分为多个文件切片,然后将该文件的文件切片陆续传输到第一服务器130,待第一服务器130接收到至少一个完整的文件切片后,第一服务器130就可以为第二 IM客户端120提供其已接收的文件切片了。
[0041]步骤230:第一 IM客户端向所述至少一个第二 IM客户端传输所述文件的文件索引信息。
[0042]在具体实现时,为了向各接收方表明自己发送的文件是什么,以及便于接收方从文件的提供源获得该文件,作为发送方的第一頂客户端会向各接收方先发送文件索引信息。在本发明实施例,文件在传输之前会被切分为多个文件切片,每个文件切片都记录MD5值,当然整个文件也记录MD5值,因此所述索引信息可以包含文件标识、文件切片的相关内容、MD5等若干信息。
[0043]需要说明的是,步骤220和步骤230没有严格的先后顺序,本发明对此并没有限制。
[0044]步骤240:第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件的文件切片。
[0045]对应于图1的系统环境而言,本发明实施例不是仅仅从第一 IM客户端110或者仅仅从第一服务器获130得文件,而是同时从这两个途径分别获得,比如分别从第一 IM客户端110和第一服务器130获得该文件不同部分的文件切片,因此相对仅从单一途径获得文件的方案而言,大大提高了文件的传输效率。
[0046]由于第一頂客户端是该文件的发送方,因此,第一頂客户端本身就是一个该文件的提供源,因此,第二 IM客户端根据所述索引信息可以从第一 IM客户端获得部分所述文件的文件切片。对应于图1的系统环境而言,第一頂客户端110本身就是一个文件的提供源,每个第二 IM客户端120都可以从第一 IM客户端110获得该文件。为了得到较快的传输效率,尤其是当某个或某几个作为接收方的第二頂客户端120与第一 IM客户端110同属于一个内网时,从第一頂客户端110获得部分文件的文件切片的效率会更高。
[0047]另一方面,由于第一頂客户端还将文件传输至了第一服务器130,因此第一服务器130也可以提供所需的文件。在具体实现时,可以在第二 IM客户端120接收到文件索引信息后,根据文件索引信息向第一服务器130发出询问,询问第一服务器130是否能够为其提供所需的文件,或者说第一服务器130能为其提供该文件的哪些文件切片。如果第一服务器130可以提供,那么就可以将对应的文件切片发送给询问的第二 IM客户端。
[0048]需要说明的是,在本发明实施例中,可选的,第一 IM客户端110将文件切片后,将文件切片陆续发送到第一服务器130,因此,第二頂客户端120不需要等第一頂客户端110将文件全部传输到第一服务器130之后,才能从第一服务器获得该文件的内容。换而言之,第二頂客户端120待第一服务器130接收到至少一个完整的文件切片后,就可以开始从第一服务器130获得其已经从第一 IM客户端110接收到的该文件的文件切片。
[0049]而在现有技术中,都是发送方不对待传输的文件进行切片处理,直接将未经切分的文件传输到共享服务器(比如传输到某个群共享空间中),因此各接收方必须等发送方将文件全部传输到共享服务器之后才能开始进行下载。可见,发明实施例通过在传输文件前先对文件进行切片,采用陆续传输文件切片到服务器的技术方案,达到了发送方在向服务器传输文件(文件切片)的过程中,接收方也能同步从服务器上下载文件(文件切片)的技术效果,相对现有技术而言,提高了即时通讯中借助服务器中转文件传输的效率。
[0050]为了更好的提高传输效率,每个第二 IM客户端可以分别从第一 IM客户端110和第一服务器130获得文件不同部分的内容,即获得不同的文件切片。比如,第二 IM客户端120可以从第一服务器130获得一部文件切片(比如第1-5个文件切片),而从第一頂客户端110获得另外一份的文件切片(比如第6-10个文件切片)。
[0051]当第一頂客户端110向第二頂客户端120传输文件(或者说第一頂客户端110向所述第二頂客户端120传输文件索引信息)时,第二 IM客户端可能不在线,即处理离线状态。那么这种情况下,待所述第二頂客户端上线后,查看所述第一頂客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息分别从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片。具体而言,第二 IM客户端120分别向第一 IM客户端110和第一服务器130发出获取文件的请求,以及需要获取的是哪些文件切片,然后第
一IM客户端110和第一服务器130根据第二 IM客户端120的请求,向其发送对应的文件切片。
[0052]可选的,本发明实施例中第二頂客户端120除了可以从第一頂客户端110和第一服务器130获得所需文件的文件切片之外,还可以通过以下方式获得还:
[0053](I)第二頂客户端120从网络侧具有所述文件的其他服务器获得所述文件。因为如果传输的文件是常见文件,那么在网络侧可能还有其他服务器上可以下载该文件,比如图1中的第三服务器150和第四服务器160等等。具体实现时,可以由一即时通讯服务器通过多种手段收集一些常见文件的下载地址,进而某第二頂客户端120需要某文件时,可以根据文件索引信息向该即时通讯服务器询问还有哪些服务器可以提供该文件的下载,如果即时通讯服务器能查询到,则将查询到的下载地址等相关信息返回给第二頂客户端120,进而第二頂客户端120就可以从这些下载地址指向的服务器去获得所述文件。
[0054](2)如果第二頂客户端120为多个,则这些第二頂客户端120彼此之间还可以交互各自所需的文件切片。第二 IM客户端120通报各自对所述文件的文件切片的已接收信息,并获知其它第二頂客户端120对所述文件的文件切片的已接收信息;第二 IM客户端120根据各自获知的其它第二 IM客户端120对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。在具体实现时有多种方式,比如,第二 IM客户端120向第二服务器140通报各自对所述文件的文件切片的已接收信息;各第二 IM客户端120根据所述第二服务器下发的汇总信息,获知其它第二頂客户端120对所述文件的文件切片的已接收情况。
[0055]比如通过一服务器进行消息汇总。具体而言,比如在图1所示的系统环境下,通过步骤230使得有些第二頂客户端120已经得到了部分文件切片,于是这些第頂客户端120就向第二服务器140通报各自对所述文件的文件切片的已接收信息,比如通报自己已经接收到该文件的哪些文件切片;然后第二服务器140就对各第二 IM客户端上报的已接收信息进行汇总(比如当前有哪些第二頂客户端120在接收该文件,分别都接收到了哪些文件切片),第二服务器140再将汇总信息下发给各第二 IM客户端,使得第二 IM客户端根据第二服务器140下发的汇总信息,就可以获知其它第二 IM客户端120对所述文件的文件切片的已接收情况。比如某一个第二頂客户端120就知道另外的一个第二頂客户端120已经接收到了该文件的第5个文件切片,还有一个第二 IM客户端120已经接收到了第6-9个文件切片等等。总而言之,就相当于各第二 IM客户端都知道彼此已经接收到了该文件的哪些文件切片。
[0056]由于每个第二頂客户端120已经知道其他第二頂客户端120都接收到了该文件的哪些文件切片,于是,这些第二 IM客户端120彼此之间就可以通过连接,交互各自所需的文件切片。比如,第一个第二頂客户端120已经从第一服务器130接收到文件的第1-5个文件切片,还需要该文件的第6-10个文件切片获得全部文件,并且获知第二个第二 IM客户端120已经接收到该文件的第6-8个文件切片,第三个第二頂客户端120已经接收到该文件的第9-10个文件切片,于是该第一个第二 IM客户端120就可以分别与第二个IM客户端120、第三个頂客户端120建立连接,从第二个第二頂客户端120获得第6-8个文件切片,从第三个IM客户端120获得第9-10个文件切片。最终该第一个第二 IM客户端120分别从第一服务器130、第二个第二 IM客户端120、第三个IM客户端120多个途径获得了该文件的全部内容。其他第二頂客户端也是以此类推,相当于每个第二頂客户端120既可以从别的第二頂客户端120获得自己所需的文件切片,也可以为别的第二 IM客户端提供自己已接收的文件切片。
[0057]可选的,为了更好的提高文件传输效率,可以在文件索引信息中不但给出文件各切片的信息,还可以给出建议或者指示一指示每个第二頂客户端应该优先从第一頂客户端或者第一服务器获得哪些部分的切片。优选的,不同第二頂客户端最初从第一頂客户端或第一服务器获得的文件切片互不相同,即各客户端最初从第一頂客户端或第一服务器获得文件不同部分的文件切片。比如,指示最初用户甲(第二 IM客户端之一)从第一 IM客户端或第一服务器获得第1-3号文件切片;指示最初用户乙(另一个第二 IM客户端)从第一 IM客户端或第一服务器获得第4-6号文件切片;指示最初用户丙(又一个第二 IM客户端)从第一頂客户端或第一服务器获得第7-10号文件切片;等等,依此类推,总而言之,最初各第二頂客户端从文件提供源获得的是该文件不同部分的文件切片。这样有利于后续各第二 IM客户端彼此交互。具体而言,后续用户甲就可以从用户乙获得该文件的第4-6号文件切片,从用户丙获得该文件的7-10号文件切片;同理,用户乙可以从用户甲获得该文件的第1-3号文件切片,从用户丙获得该文件的7-10号文件切片;用户丙从用户甲获得该文件的第1-3号文件切片,从用户乙获得该文件的第4-6号文件切片。由此可见,在这种情况下,各第二頂客户端很好的实现了彼此相互交互各自所需的文件切片。
[0058]当然,本领域技术人员可以理解,如果不在最初指示各第二 IM客户端从文件的提供源获得不同部分的文件切片也是可行的,由于各第二頂客户端下载速度不同、所需的文件切片也可能不同、优先请求下载的文件切片也可能不同,所以后续各第二頂客户端在某个时刻得到的文件切片也多数情况下也是不尽相同的,因此还是可以彼此交互各自所需。
[0059]需要说明的是,在各第二頂客户端相互交互彼此所需的文件切片的同时,还可以继续从第一服务器或者第一 IM客户端获得所需的文件切片,也就是说从第一服务器和第一頂客户端获得文件切片可以是一个持续的过程,在某个阶段,可以与各第二頂客户端彼此相互交互并行执行。即,各第二頂客户端可以同时通过若干各途径(第一頂客户端、第一服务器、其它服务器或者其它第二頂客户端)获得自己所需的文件切片,只要是从不同途径获得不同部分的文件切片,那么就可以达到多条途径互补的效果,从而达到较高的传输效率。当然,也有可能某个第二頂客户端在需要获得文件的最后一个文件切片时,因为不确定通过哪个途径获得更快,而且也没有其它文件切片需要获得了,所以可能同时通过多个途径索要该文件切片,以便保证最快获得该最后一个文件切片。所以,多数情况下,为了保证最快的文件传输速率,本发明实施例对从不同途径获得的文件切片是不同的,但也不排除个别情况下从不同途径获得相同文件切片。
[0060]与前述方法实施例相对应,本发明还公开了 一种用于即时通讯中传输文件的装置,请参阅图3,其为本发明提供的一种用于即时通讯中传输文件的装置实施例示意图。
[0061]具体而言,所述系统包括指示单元310、切分单元320、索引单元330以及第一文件获得单元340。其中,指示单元310用于接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二頂客户端;切分单元320,用于所述第一頂客户端将所述文件切分为多个文件切片,并将所述文件的文件切片陆续传输到第一服务器;索引单元330,用于所述第一 IM客户端向所述至少一个第二 IM客户端传输所述文件的文件索引信息;第一文件获得单元340,用于所述第二 IM客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片。
[0062]可选的,当所述至少一个第二頂客户端为多个时,本实施例的装置还包括:
[0063]信息通报单元,用于所述第二頂客户端通报各自对所述文件的文件切片的已接收信息,并获知其它所述第二 IM客户端对所述文件的文件切片的已接收信息。可选的,信息通报单元的实现方式有多种,比如信息通报单元具体包括:自身信息通报单元,用于所述第二 IM客户端向第二服务器通报各自对所述文件的文件切片的已接收信息;其他客户端信息获知单元,用于所述第二頂客户端根据所述第二服务器下发的汇总信息,获知其它第
二IM客户端对所述文件的文件切片的已接收情况。
[0064]第二文件获得单元,用于所述第二 IM客户端根据各自获知的其它第二 IM客户端对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。
[0065]可选的,本发明实施例的系统还可以包括:第三文件获得单元,用于所述第二頂客户端从网络侧具有所述文件的其他服务器获得所述文件。
[0066]可选的,所述第一文件获得单元340可以包括离线文件获得子单元,具体用于如果所述第一頂客户端向所述第二頂客户端传输所述文件索引信息时,所述第二頂客户端处于离线状态,则待所述第二頂客户端上线后,查看所述第一頂客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息至少从所述第一 IM客户端和所述服务器分别获得所述文件的文件切片。还可以包括在线文件获得子单元,具体用于如果所述第一 IM客户端向所述第二 IM客户端传输所述文件索引信息时,所述第二 IM客户端处于在线状态,所述第二頂客户端根据所述文件索引信息至少从所述第一頂客户端和所述服务器分别获得所述文件的文件切片。
[0067]可选的,所述第一文件获得单元340包括服务器文件获得子单元,用于所述第二IM客户端待所述第一服务器接收到至少一个完整的所述文件切片后,从所述第一服务器获得所述第一服务器已接收到的所述文件的文件切片。还可以包括頂客户端文件获得子单元,用于根据文件索引信息,从所述第一頂客户端获得文件的文件切片。
[0068]可选的,所述第一文件获得单元340,具体用于所述第二 IM客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件不同部分的文件切片。
[0069]可选的,所述指示单元310可以包括:第一指示单元,用于接收用户需要通过即时通讯工具传输文件的第一指示信息;触发调用单元,用于在接收到所述第一指示信息时触发调用第一頂客户端的信息,为所述用户提供可作为所述文件接收方的第二頂客户端的候选信息;接收方指示单元,用于接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二頂客户端。
[0070]或者,所述指示单元310具体包括:第三指示单元,用于通过第一 IM客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件;第四指示单元,用于接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二 IM客户端。
[0071]通过前面各实施例的描述可以看出,相对现有的IM文件传输而言,本发明实施例有诸多有益效果:
[0072]由于作为发送方的第一IM客户端在发送待传输文件之前,会先将待传输文件切分为多个文件切片,并发送到第一服务器上,因此第一服务器待接收到一个完整的文件切片之后就能为第二頂客户端(无论是一个还是多个)提供已接收的文件切片,而不必等接收到全部文件之后才能提供给其他有需要的客户端,因此几乎能达在第一頂客户端传输文件的过程中(即文件还没有传输完毕),第二頂客户端已经开始接收该文件的技术效果,因此相对必须先把整个文件全部发送到某服务器后,作为接收方的第二頂客户端才能开始下载,大大提高了文件传输效率。而且,由于作为发送方的第一 IM客户端将待传输文件的文件索引信息发送给用户指示的接收方-即至少一个第二 IM客户端,使得第二 IM客户端可以根据索引信息一方面从第一服务器获得所需的文件切片,另一方面还可以从第一頂客户端获得所需的文件切片,因此无论接收方是一个,还是多个,都大大提高了只单独从一个文件源获得文件的效率。
[0073]进一步,由于本发明实施例是将文件索引信息发给作为接收方的第二 IM客户端(可以是多个),而不是直接将文件传输到某个群的共享服务器上,因此,接收方不限于某个用户群的用户,而可以是不属于同一用户群的多个用户,因此当接收方为多个时,本发明实施例的接收方不受用户群的限制,可以是任意多个頂用户。
[0074]更进一步,如果接收方的第二 IM客户端是多个的情况下,在多个第二 IM客户端分别接收到一分部文件切片之后,可以彼此交互各自所需的文件切片,而不是像现有技术每个第二 IM客户端只能从共享服务器分别下载文件,所以达到提高了向多个用户传输同一文件(群发文件)的传输效率,尤其是如果作为接收方的第二 IM客户端越多,就可以从越多第二 IM客户端分别获得不同的文件部分,进而传输效率的优势越明显。
[0075]再进一步,不但作为接收方的第二 IM客户端可以从第一服务器、第一 IM客户端获得所需的文件切片,以及各第二 IM客户端之间可以彼此交互各自所需的文件切片,还可以从网络侧具有该文件的其他服务器上获得部分文件,从而更进一步的提高文件传输速率。总而言之,当第一頂客户端需要向一个或多个第二頂客户端传输文件时,第二頂客户端可以通过多种途径、从多个文件的提供源(如其他第二頂客户端、第一服务器、其他网络服务器、第一 IM客户端等)并行获得文件的不同部分,最终能够在相对较短的时间内获得全部文件,大大提高了即时通讯中向多个用户传输同一文件的传输效率。
[0076]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0077]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0078]以上对本发明所提供的一种用于即时通讯中传输文件的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均
[0079]会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种用于即时通讯中传输文件的方法,其特征在于,包括: 接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二 IM客户端; 所述第一 IM客户端将所述文件切分为多个文件切片,并将所述文件的文件切片传输到第一服务器; 所述第一頂客户端向所述至少一个第二 IM客户端传输所述文件的文件索引信息; 所述第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件的文件切片。
2.根据权利要求1所述的方法,其特征在于,当所述至少一个第二IM客户端为多个时,所述方法还包括: 所述第二 IM客户端通报各自对所述文件的文件切片的已接收信息,并获知其它所述第二 IM客户端对所述文件的文件切片的已接收信息; 所述第二頂客户端根据各自获知的其它第二頂客户端对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。
3.根据权利要求1所述的方法,其特征在于,还包括: 所述第二頂客户端从网络侧具有所述文件的其他服务器获得所述文件。
4.根据权利要求1所述的方法,其特征在于,所述第二IM客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片包括:` 如果所述第一頂客户端向所述第二頂客户端传输所述文件索引信息时,所述第二頂客户端处于离线状态,则待所述第二 IM客户端上线后,查看所述第一 IM客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片。
5.根据权利要求1所述的方法,其特征在于,所述第二IM客户端根据所述文件索引信息,至少从所述第一服务器获得所述文件切片包括: 所述第二頂客户端待所述第一服务器接收到至少一个完整的所述文件切片后,从所述第一服务器获得所述第一服务器已经接收到的所述文件的文件切片。
6.根据权利要求1所述的方法,其特征在于,所述第二IM客户端根据所述文件索引信息,至少从所述第一 IM客户端和所述第一服务器获得所述文件的文件切片包括: 所述第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件不同部分的文件切片。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述接收用户的指示信息,所述指示信息指示第一頂客户端将文件传输给至少一个第二頂客户端包括: 接收用户需要通过即时通讯工具传输文件的第一指示信息; 所述第一指示信息触发调用第一 IM客户端的信息,为所述用户提供可作为所述文件接收方的第二頂客户端的候选信息; 接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二 IM客户端。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述接收用户的指示信息,所述指示信息指示第一頂客户端将文件传输给至少一个第二頂客户端包括:通过第一頂客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件; 接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二頂客户端。
9.一种用于即时通讯中传输文件的装置,其特征在于,包括: 指示单元,用于接收用户的指示信息,所述指示信息指示第一即时通讯頂客户端将文件传输给至少一个第二 IM客户端; 切分单元,用于所述第一 IM客户端将所述文件切分为多个文件切片,并将所述文件的文件切片陆续传输到第一服务器; 索引单元,用于所述第一 IM客户端向所述至少一个第二 IM客户端传输所述文件的文件索引信息; 第一文件获得单元,用于所述第二頂客户端根据所述文件索引信息,至少从所述第一IM客户端和所述第一服务器获得所述文件的文件切片。
10.根据权利要求9所述的装置,其特征在于,当所述至少一个第二頂客户端为多个时,还包括: 信息通报单元,用于所述第二頂客户端通报各自对所述文件的文件切片的已接收信息,并获知其它所述第二頂客户端对所述文件的文件切片的已接收信息; 第二文件获得单元,用于所述第二頂客户端根据各自获知的其它第二頂客户端对所述文件的文件切片的已接收信息,彼此交互各自所需的所述文件的文件切片。`
11.根据权利要求9所述的装置,其特征在于,还包括: 第三文件获得单元,用于所述第二頂客户端从网络侧具有所述文件的其他服务器获得所述文件。
12.根据权利要求9所述的装置,其特征在于,所述第一文件获得单元包括: 离线文件获得子单元,用于如果所述第一頂客户端向所述第二頂客户端传输所述文件索引信息时,所述第二頂客户端处于离线状态,则待所述第二 IM客户端上线后,查看所述第一 IM客户端当前是否在线;如果在线,则所述第二 IM客户端根据所述文件索引信息至少从所述第一頂客户端和所述服务器分别获得所述文件的文件切片。
13.根据权利要求9所述的装置,其特征在于,所述第一文件获得单元包括: 服务器文件获得子单元,用于所述第二 IM客户端待所述第一服务器接收到至少一个完整的所述文件切片后,从所述第一服务器获得所述第一服务器已接收到的所述文件的文件切片。
14.根据权利要求9所述的装置,其特征在于: 所述第一文件获得单元,具体用于所述第二頂客户端根据所述文件索引信息,至少从所述第一頂客户端和所述第一服务器获得所述文件不同部分的文件切片。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述指示单元具体包括: 第一指示单元,用于接收用户需要通过即时通讯工具传输文件的第一指示信息; 触发调用单元,用于在接收到所述第一指示信息时触发调用第一頂客户端的信息,为所述用户提供可作为所述文件接收方的第二頂客户端的候选信息; 接收方指示单元,用于接收所述用户根据所述候选信息给出的第二指示信息,所述第二指示信息指示所述用户选择的作为所述文件接收方的至少一个第二IM客户端。
16.根据权利要求9至14中任一项所述的装置,其特征在于,所述指示单元具体包括:第三指示单元,用于通过第一頂客户端的一入口接收用户的第三指示信息,所述第三指示信息指示用户待传输的文件; 第四指示单元,用于接收用户的第四指示信息,所述第四指示信息指示所述用户选择的作为文件接收方的至少一个第二IM客户端。
【文档编号】H04L29/06GK103516584SQ201210223910
【公开日】2014年1月15日 申请日期:2012年6月28日 优先权日:2012年6月28日
【发明者】朱翼鹏, 陈宁一, 胡宇光, 周云峰, 刘伟刚, 刘航 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1