一种插件下载的方法和系统的制作方法

文档序号:7709768阅读:88来源:国知局
专利名称:一种插件下载的方法和系统的制作方法
技术领域
本发明涉及网络交互领域,特別涉及一种插件下载的方法和系统。
背景技术
插件是一种程序模块,符合服务平台的接入规范,能够运行于服务平台 的,并不是服务平台本身所必须的功能或者业务模块,从物理形式上来看,
包含^f旦不局限于动态链冲妻库(Dynamic Linkable Library, DLL )。即时通讯 (Instant Messaging, IM)指能够即时发送和接收互联网消息等的业务,通 过IM功能,可以知道联系人是否正在线上,并可以与在线的联系人进行即 时通信。IM软件是通过即时通讯技术来实现在线聊天、交流的软件,装载 了 IM软件的客户端可以称为IM客户端,IM客户端有时也会需要从服务器 下载插件。
在现有的IM客户端进行插件下载的过程中,采用是点对点的方式,这 种方式需要存在种子服务器,该种子服务器用于记录哪些客户端拥有插件资 源,有什么样的插件资源,以及各个客户端的物理信息等,例如客户端的媒 体访问控制(Media Access Control, MAC );也址,网络切、i义(Internet Protocol, IP)地址。当某个客户端需要下载插件资源时,可以通过某种途径获取该插 件资源的种子,并通过种子服务器,根据种子记录的插件信息尝试从插件下 载服务器上连接下载所需的插件。
从上述过程中可以看出,现有技术的下载插件方式需要种子服务器提 供相应的种子,而种子服务器占用了较多的网络资源;更进一步的,当 客户端下载插件并安装完成后,还需要向种子服务器同步更新的插件信 息,这就又增加了维护种子服务器的成本,并且使得操作更为复杂。
总之,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够创新的提出 一种插件下载的方法,以解决现有技术中需要专门的 种子服务器,并且需要大量的同步操作带来的网络资源浪费问题。

发明内容
本申请所要解决的技术问题是提供一种插件下载的方法,用以解决 现有技术中需要专门的种子服务器,并且需要大量的同步操作带来的网 络资源浪费问题。
本申请还提供了 一种插件下载的系统,用以保证上述方法在实际中的 实现及应用。
为了解决上述问题,本申请公开了一种插件下载的方法,包括即时 通讯IM客户端接收用户发送的插件下载请求;当检测到能够直接访问的 对端客户端时,在一定预置时间内,所述IM客户端依据所述插件下载请 求向所述对端客户端请求插件;当超出所述预置时间时,所述IM客户端 直接从下载服务器下载所述插件。
本申请还公开了一种插件下载的系统,该系统包括IM客户端,包 括接收模块、请求插件模块和下载模块;其中,所述接收模块用于接收 用户发送的插件下载请求;所述请求插件模块用于当检测到能够直接访 问的对端客户端时,在一定预置时间内,依据所述插件下载请求向所述 对端客户端请求插件;所述下载模块用于当超出所述预置时间时,直接 从下载服务器下载所述插件。
与现有技术相比,本申请包括以下优点
在本申请实施例中,即时通讯IM客户端接收用户发送的插件下载请 求,所述插件下载请求包括插件名称和版本信息;当检测到能够直接访 问的对端客户端时,则所述IM客户端在一定预置时间内,依据所述插件 名称和版本信息向所述对端客户端请求插件;当所述对端客户端存储有 所述插件时,所述IM客户端接收所述对端客户端传输的插件,当超出所 述预置时间时,所述IM客户端直接从下载服务器下载所述插件。可以看 出,本申请并没有采用种子服务器,而是利用IM客户端的在线对端客户 端(即是好友客户端)所保存的插件,从而直接为所述IM客户端提供所 述插件,这样就避免了还需要设置种子服务器的过程,系统不需要维护 种子服务器就节省了服务器的资源以及服务器的网络资源,使得本实施 例中插件下载的方法变得更为简单和易行;进一步的,还避免了 IM客户端在安装插件之后需要向下载服务器同步上传插件信息的操作。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本申请的 一些实施例,对于本领域普通技术人 员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
图l是本申请在实际应用中的系统架构图2是本申请的一种插件下载的方法实施例1的流程图3是本申请的 一种插件下载的方法实施例2的流程图4是本申请的一种插件下载的方法实施例3的流程图5是本申请的一种插件下载的系统实施例1的结构框图6是本申请的一种插件下载的系统实施例2的结构框图7是本申请的一种插件下载的系统实施例2中IM客户端的部分结
构框图。
具体实施例方式
下面将结合本发明实施例中的附图,对本申请实施例中的技术方案 进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实 施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如个 人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处 理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的 一般上下文中描 述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽 象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布 式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络 而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请的主要思想之一 包括,即时通讯IM客户端接收用户发送的插
件下载请求,所述插件下载请求包括插件名称和版本信息;当检测到能 够直接访问的对端客户端时,则所述IM客户端依据所述插件名称和版本 信息向所述对端客户端请求插件;当所述对端客户端存储有所述插件时, 所述IM客户端接收所述对端客户端传输的插件。
本申请在实际应用中的系统架构可以参考图1所示,其中包括下载服 务器、IM服务器、IM客户端和对端客户端。其中,下载服务器用于当图 中所述的对端客户端无法向所述IM客户端提供插件时,由所述IM客户 端直接向下载服务器请求插件,所述IM服务器用于向所述IM客户端提 供其联系人客户端(即是对端客户端)的地址信息,包括IP地址信息和 MAC地址信息,所述对端客户端可以是多个,能够在线向所述IM客户 端提供所需的插件。
参考图2,示出了本申请一种插件下载的方法实施例1的流程图,可 以包括以下步骤
步骤201: IM客户端接收用户发送的插件下载请求;
其中,用户向所述IM客户端发送插件下载请求,在实际中可以包括 多种方式,例如,用户点击某个安装插件的统一资源定位符URL链接或 者对话框;或者,用户点击某个IM运营商提供的、包括安装插件指示的 插件推广入口,该插件推广入口可以包含URL,可以为处于用户主界面 或者聊天窗t 等处的入口按4丑或者类似入口;或者,用户点击某个IM运 营商的浮出推广区域, 一般情况下为系统任务栏在右下角浮出的页面区 域;或者,用户接受了当前系统默认的安装插件的用户协议后,由系统 默认触发插件安装;
所述插件下载请求可以包括插件的名称以及版本信息,可以根据插件 的名称及版本来唯一确定一个插件;在实际应用中,可以由IM客户端的 插件管理器来截取用户触发的插件下载请求,所述插件管理器是所述IM 客户端的一个功能模块;步骤202:当检测到能够直接访问的对端客户端时,则在一定预置时 间内,所述IM客户端依据所述插件下载请求向所述对端客户端请求插 件;
IM客户端可以在接收到用户发送的插件下载请求之后,检测该IM 客户端是否存在能够直接访问的对端客户端,所述能够直接访问,即是 该IM客户端与所述对端客户端是否能够无需通过IM服务器而直接进行 IP通讯;其中,所述对端客户端也是一个与IM服务器相连的IM客户端, 能够进行即时通讯;具体的,可以根据IM客户端记录的好友地址信息列 表中的IP地址信息来检测IM客户端与对端客户端之间是否能直接访问; 所述一定预置时间可以根据IM客户端的实际需求,或者网络的实际运行 情况来设定,例如,10秒钟;本申请无需对此做出限定, 一定预置时间 的大小并不影响本申请的实现;其中,所述好友地址信息列表可以如下 所示
用户名 MAC地址 IP地址
小张 001122FFEE 20.1.4.88 小李 11FEAC44 22.2.6.7.....
根据ip地址信息可以从相关标准中知道哪一^a ip地址属于/>网地 址,哪一段ip地址属于私有网段,即是局域网,只有当对端客户端的ip
地址属于公网地址时,例如,新浪IP地址,才能够和所述IM客户端无 需通过IM服务器直接进行IP通讯;因为如果对端客户端的IP地址如果 不是公网就属于局域网地址了 ,而局域网的IP地址在本申请实施例中认 为是不可直接访问的,例如某个公司内部的IP地址,很可能就会因为一 些特殊的设置参数而无法被外部的网络直接进行访问;
因此,本步骤中能够直接访问的对端客户端的方法,具体包括
子步骤Al:所述IM客户端检测是否存在当前在线的对端客户端, 如果是,则进入子步骤A2;
子步骤A2:根据存储的所述在线的对端客户端的IP地址信息,判断 所述在线的对端客户端中是否存在能够进行IP通讯的对端客户端;
如果检测得到这样的对端客户端,则所述IM客户端 所述对端客户端请求所述插件名称和版本信息对应的插件,具体可以通过发送一个下 载插件请求来实现;
步骤203:所述对端客户端向所述IM客户端传输所述插件。
一般情况下,在所述一定预置时间内,所述对端客户端接收到IM客 户端发送的下载插件请求之后,在本地检测是否存在所述插件,如果存 在,则所述对端客户端向所述IM客户端传输所述插件。其中,当所述对 端客户端不存在所述插件时,可以向所述IM客户端返回无插件的提示信 息,则所述IM客户端可以继续向其他能够直接访问的对端客户端请求所 述插件,直至能够请求到所述插件为止。
需要说明的是,当超出所述预置时间时,所述IM客户端直接从下载 服务器下载所述插件,因为有可能IM客户端无法等待太长时间,或者导 致请求插件的时间过长的原因是IM客户端几乎没有对端客户端在线,所 以,当IM客户端向对端客户端请求插件的时间超过了预先设定的时间, 则直接从下载服务器下栽所述插件。
在本实施例中,通过由IM客户端在接收到插件下载请求之后,直接 才企测是否存在能够直接访问的对端客户端,当净全测到这样的对端客户端 时,可以直接向该对端客户端请求所需的插件,最后接收所述对端客户 端传输的插件,这样就避免了还需要设置种子服务器的过程,系统不需 要维护种子服务器就节省了大量服务器的资源和服务器的网络资源,使 得本实施例中插件下载的方法变得更为简单和易行。
参考图3,示出了本申请一种插件下载的方法实施例2的流程图,可 以包括以下步骤
步骤301: IM客户端接收用户发送的插件下载请求,所述插件下载 请求包括插件名称和版本信息;
在实际应用中,所述IM客户端包括插件管理器,本实施例的执行主 体也可以采用插件管理器实现;
步骤302: IM客户端检测是否存在当前在线的对端客户端,如果是, 则进入步骤303;可以通过检测IM客户端的好友地址信息列表中,有多少对端客户端 是处于在线状态,在本申请实施例中,所述对端客户端均为所述IM客户
端所添加的所有联系人客户端;其中,IM服务器会在IM客户端登录的 时候,将对端客户端的状态推送给IM客户端,IM服务器还会在任何一 个所述对端客户端的状态发生变化时,将更新后的对端客户端的状态推 送给所述IM客户端;
在本步骤中,如果^:测到不存在当前在线的对端客户端,则所述IM 客户端直接向下载服务器请求所述插件即可;
步骤303:根据存储的所述在线的对端客户端的IP地址信息,判断 所述在线的对端客户端中是否存在能够进行IP通讯的对端客户端,如果 是,则进入步骤304;
所述IM客户端在登录时,IM服务器会将在线的所述对端客户端的 地址信息推送至所述IM客户端,所述IM客户端就会将这些地址信息进 行存储;在本步骤,就可以根据IP地址信息,例如,是不是属于公网, 或者局域网等,就知道对端客户端和所述IM客户端能否直接进行IP通 讯;还可以根据IP地址信息判断出属于哪个运营商,则可以进一步优先 选择相同运营商的对端客户端进行通讯;
在本步骤中,如果才企测到不存在能够进行IP通讯的对端客户端,则 所述IM客户端直接向下载服务器请求所述插件即可;
步骤304:在一定预置时间内,所述IM客户端向一个对端客户端发 起建立连接请求,当连接建立成功时,进入步骤305,当连接建立失败时, 进入步骤306;
所述IM客户端则向所述一个能够直接进行IP通讯的对端客户端发 起建立连接请求,可以以循环的方式,即是首先向其中一个对端客户端 发起连接,其中两个客户端之间的连接可以是TCP连接;所述预置时间 优选情况下选择10秒钟;
需要说明的是,在检测到存在多个可以直接通讯的对端客户端时,可 以随机选择其中一个,也可以通过对对端客户端IP地址的判断,来选择 和所述IM客户端属于同一个运营商的对端客户端进行下载,例如,IM客户端为电信运营商的用户,则优先选择电信运营商的对端客户端进行
下载;如果存在多个属于同一运营商的对端客户端,则可以从物理地址 再次对对端客户端进行选择; 一般情况下,同一个运营商的客户端之间
要比不同运营商的客户端之间的下载速度块,并且,同一个运营商之间
可以选择物理地址较近的客户端进行下载,在实际操作中,可以根据MAC 地址来实现;
当然,也可以启动多个线程,即是同时向多个对端客户端发起建立连 接请求,则选择建立连接最快的对端客户端请求插件,本领域技术人员 可以知道,选择哪个对端客户端来下载插件可以根据实际中的网络情况 和用户需求有所变动,本申请并不限定其下载方式;
步骤305:所述IM客户端向该一个对端客户端发送下载插件请求, 进入步骤307;
步骤306:所述IM客户端循环向其他对端客户端发起建立连接请求, 直至连接建立成功,进入步骤307;
所述IM客户端可以循环向其他能够直接进行IP通讯的对端客户端 发起建立连接请求,直至所述IM客户端能够和某一个对端客户端成功建 立连接;需要说明的是,当所有符合条件的IM客户端均未成功建立连接, 则所述客户端还是向下载服务器请求所述插件,直接从下载服务器进行 下载;
步骤307:所述对端客户端向所述IM客户端传输所述插件;
对端客户端在接收到所述IM客户端发送的下载插件请求时,在本地 检测是否保存有该插件,如果有,则向所述IM客户端直接传输所述插件;
步骤308:所述IM客户端在本地安装所述插件,并将所述插件对应 的插件名称和版本信息进行保存;
步骤309:当超出所述预置时间时,所述IM客户端直接从下载服务 器下载所述插件。
其中,步骤308和步骤309为选择执行的步骤,在这里为了方便描述, 将其按照先后关系进行布局,本领域技术人员可以知道,步骤308和步 骤309并不存在先后顺序关系。在本实施例中,所述IM客户端在接收到所述插件之后,在本地安装 所述插件,并将所述插件对应的插件名称和版本信息进行保存,需要说
明的是,和现有技术不同的是,此处只需保存在IM客户端本地即可,无
需上传至服务器,因此,本实施例中不仅可以不需要种子服务器,节约
了服务器的资源和服务器的网络资源,还可以省略IM客户端向种子服务 器上传插件安装的同步操作,因此,更加节约了服务器的网络交互资源。
参考图4,示出了本申请一种插件下载的方法实施例3的流程图,本 实施例可以理解为本申请在实际应用中的一个具体例子,可以包括以下 步骤
步骤401:用户在IM客户端登录IM软件;
步骤402: IM服务器向所述IM客户端发送其在线的对端客户端的地 址信息;
当用户登录IM软件之后,IM服务器向所述IM客户端发送在线的对 端客户端的地址信息;
步骤403: IM客户端在好友地址信息列表中记录所述地址信息;
IM客户端可以通过好友地址信息列表来记录所述地址信息,前述步 骤在实施例1和实施例2中已经做了详细介绍,在此不再赘述;
步骤404:所述IM客户端的插件管理器接收用户在点击安装插件的 统一资源定位符URL链接或者对话框时,向IM客户端发送请求,所述 请求包括插件名称和版本信息;
当用户点击安装插件的URL链接或者对话框时,会向IM服务器发 送请求,但是IM客户端首先将该请求截获,并进行后续的操作;所述请 求包括插件名称和版本信息,可以唯一确认一个插件;
步骤405:插件管理器检测本地保存的插件标识信息中,是否包括所 述插件名称和版本信息,如果不包括,则进入步骤406;
在本实施例中,所述插件管理器检测本地已经保存的插件标识信息 中,是否包括所述插件名称和版本信息,如果已经包括了,则直接从本 地获取即可;步骤406:插件管理器向IM服务器发送所述插件名称和版本信息; 步骤407:插件管理器接收所述IM服务器根据所述插件名称和版本 信息返回的插件签名信息;
在本例子中,优选的,插件管理器还可以向IM服务器发送所述插件 名称和版本信息;IM服务器在接收到插件名称和版本信息之后,查询插 件签名信息,其中,所述签名信息为信息-摘要算法(Message-digest Algorithm 5, MD5 )的散列值,用以唯一标识一个插件的安装包信息, 可以用其来判断该插件是否被修改过;IM服务器将所述签名信息发送至 所述IM客户端;
步骤408:插件管理器检测是否存在当前在线的对端客户端,如果是, 则进入步骤409;
步骤409:插件管理器根据存储的所述在线的对端客户端的IP地址 信息,判断所述在线的对端客户端中是否存在能够进行IP通讯的对端客 户端,如果是,则进入步骤410;
步骤410:在一定预置时间内,插件管理器向所述对端客户端发送下 载插件请求,所述下载插件请求包括插件名称和版本信息,以及插件签 名信息;
在本例子中,与前两个实施例不同之处在于,插件管理器向所述对端 客户端发送的下载插件请求中包括插件名称和版本信息,还包括插件签 名信息;
步骤411:所述对端客户端检测接收到的插件签名信息和本地保存的 插件签名信息是否一致,如果是,则向所述IM客户端传输所述插件;
所述对端客户端检测接收到插件签名信息和本地保存的插件签名信 息是否一致,当不一致的时候,可以向所述IM客户端返回一个提示错误 信息,或者也可以返回没有该插件的提示信息,此时,IM客户端可以从 下载服务器直接下载相应的插件;如果一致,则所述对端客户端向所述 IM客户端传输所述插件;
步骤412:所述IM客户端在本地安装所述插件,并将所述插件对应 的插件名称、版本信息和签名信息进行保存。需要说明的是,根据本申请实施例,本领域技术人员可以很容易的想 到,当所有对端客户端都不存在所述IM客户端所需的插件时,所述对端 客户端可以继续向各自的好友客户端发送插件请求,直至其中一个对端 客户端能够找到保存了所述插件的好友客户端,或者好友客户端继续向
好友发送插件请求,直至找到所述插件为止;当然,如果在一定时间内
查询不到该插件,还可以直接从下载服务器进行下载,该一定时间可以 根据实际的网络情况任意设置。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的 动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作 顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进 行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属 于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种插件下载的方法实施例1所提供的方法相对应,
参见图5,本申请还提供了一种插件下载的系统实施例1,在本实施例中, 该系统可以包4舌
IM客户端501,包括接收模块5011、请求插件模块5012和下载模块 5013;
其中,所述接收模块5011用于接收用户发送的插件下载请求;所述 请求插件模块5012用于当检测到能够直接访问的对端客户端时,在一定 预置时间内,依据所述插件下载请求向所述对端客户端请求插件;所述 下载模块5013用于当超出所述预置时间时,直接从下载服务器下载所述 插件;
其中,用户向所述IM客户端发送插件下载请求,在实际中可以包括 多种方式,例如,用户点击某个安装插件的统一资源定位符URL链接或 者对话框;或者,用户点击某个IM运营商提供的、包括安装插件指示的 插件4,广入口,该插件推广入口可以包含URL,可以为处于用户主界面 或者聊天窗口等处的入口4姿^組或者类似入口;或者,用户点击某个IM运 营商的浮出推广区域, 一般情况下为系统任务栏在右下角浮出的页面区域;或者,用户接受了当前系统默认的安装插件的用户协议后,由系统
默认触发插件安装;
所述插件下载请求可以包括插件的名称以及版本信息,可以根据插件
的名称及版本来唯一确定一个插件;在实际应用中,可以由IM客户端的 插件管理器来截取用户触发的插件下载请求,所述插件管理器是所述IM 客户端的一个功能模块;
对端客户端502,用于向所述IM客户端传输所述插件。 一般情况下,所述对端客户端接收到IM客户端发送的下载插件请求 之后,可以首先在本地检测是否存在所述插件,如果存在,则所述对端 客户端向所述IM客户端传输所述插件。其中,当所述对端客户端不存在 所述插件时,可以向所述IM客户端返回无插件的提示信息,则所述请求 插件模块5012可以继续向其他能够直接访问的对端客户端请求所述插 件,直至能够请求到所述插件为止。
在本实施例中,通过由IM客户端在接收到插件下载请求之后,直接 检测是否存在能够直接访问的对端客户端,当检测到这样的对端客户端 时,可以直接向该对端客户端请求所需的插件,最后接收所述对端客户 端传输的插件,这样 就避免了还需要设置种子服务器的过程,系统不需 要维护种子服务器就节省了大量服务器的资源和服务器的网络资源,使 得本实施例中插件下载的方法变得更为简单和易行。
与上述本申请一种插件下载的方法实施例2所提供的方法相对应, 参见图6,本申请还才是供了一种插件下载的系统的优选实施例2,在本实 施例中,该系统具体可以包^":
位于IM客户端的
接收模块5011,用于接收用户发送的插件下载请求,所述插件下载
请求包括插件名称和版本信息;
检测子模块601,用于检测是否存在当前在线的对端客户端; 所述检测子模块601可以通过检测IM客户端的好友地址信息列表
中,有多少个对端客户端是处于在线状态,在本 请实施例中,所述对端客户端均为所述IM客户端所添加的所有联系人客户端;其中,IM服 务器会在IM客户端登录的时候,将对端客户端的状态推送给IM客户端, IM服务器还会在任何一个所述对端客户端的状态发生变化时,将更新后 的对端客户端的状态推送给所述IM客户端;
如果所述检测子模块601检测到不存在当前在线的对端客户端,则所 述IM客户端直接向下载服务器请求所述插件即可;
判断子模块602,用于当检测子模块的结果为是时,根据存储的所述 在线的对端客户端的IP地址信息,判断所述在线的对端客户端中是否存 在能够进行IP通讯的对端客户端;
所述IM客户端在登录时,IM服务器会将在线的所述对端客户端的 地址信息推送至所述IM客户端,所述IM客户端就会将这些地址信息进 行存储;在本步骤,就可以根据IP地址信息所表示的含义,例如,是不 是属于公网,或者局域网等,就知道对端客户端和所述IM客户端能否直 接进行IP通讯;还可以根据IP地址信息判断出属于哪个运营商,则可以 进一步优先选择相同运营商的对端客户端进行通讯;
请求插件子模块603,用于当所述判断子模块的结果为是时,依据所 述插件标识信息向所述对端客户端请求插件;
所述请求插件子模块603,具体可以包括
请求连接子模块,用于当所述判断子模块的结果为是时,向一个能够 直接访问的对端客户端发起建立连接请求;
请求子模块,用于当连接建立成功时,向该一个对端客户端发送下载 插件请求;
循环请求子模块,用于当连接建立失败时,循环向其他对端客户端发 起建立连4妻请求;
安装保存模块604,用于在本地安装所述插件,并将所述插件对应的 插件名称和版本信息进行保存。 该系统还可以包^":
对端客户端502,用于向所述IM客户端传输所述插件。 在本实施例中,所述IM客户端在接收到所述插件之后,在本地安装所述插件,并将所所述插件对应的插件名称和版本信息进行保存,需要 说明的是,和现有技术不同的是,此处只需保存在IM客户端本地即可, 无需上传至服务器,因此,本实施例中不仅可以不需要种子服务器,节 约了网络资源,还可以省略IM客户端向种子服务器上传插件安装的同步 操作,因此,更加节约了服务器的资源和服务器的网络交互资源。
同时,在本申请的另一个实施例中,参考图7所示,所述IM客户端 还可以包4舌
检测模块701 ,用于检测本地保存的插件标识信息中,是否包括所述 插件名称和版本信息;
发送模块702,用于向IM服务器发送所述插件名称和版本信息;
第二接收模块703,用于接收所述IM服务器根据所述插件名称和版 本信息返回的插件签名信息;
则所述请求插件模块5012,具体用于当检测到能够直接访问的对端 客户端时,向所述对端客户端发送所述插件名称和版本信息,以及插件 签名信息;
则所述对端客户端502,具体用于检测接收到的插件签名信息和本地 保存的插件签名信息是否一致,如果是,则向所述IM客户端传输所述插 件。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述, 每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间 相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法 实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅 仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要 求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。并 且,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包 含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那 些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由 语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、 方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的 一种插件下载的方法及系统进行了详细介
绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以
上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时, 对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应 用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申 请的限制。
权利要求
1、一种插件下载的方法,其特征在于,该方法包括即时通讯IM客户端接收用户发送的插件下载请求;当检测到能够直接访问的对端客户端时,在一定预置时间内,所述IM客户端依据所述插件下载请求向所述对端客户端请求插件;当超出所述预置时间时,所述IM客户端直接从下载服务器下载所述插件。
2、 根据权利要求1所述的方法,其特征在于,检测能够直接访问的 对端客户端的方法,具体包括所述IM客户端检测是否存在当前在线的对端客户端; 如果是,则根据存储的所述在线的对端客户端的IP地址信息,判断 所述在线的对端客户端中是否存在能够直接进行IP通讯的对端客户端。
3、 根据权利要求1所述的方法,其特征在于,所述IM客户端依据 所述插件下载请求向所述对端客户端请求插件,具体包括所述IM客户端向一个对端客户端发起建立连接请求; 当连接建立成功时,则向该对端客户端发送下载插件请求,当连接建 立失败时,则循环向其他对端客户端发起建立连接请求。
4、 根据权利要求1所述的方法,其特征在于,所述插件下载请求包 括插件名称和版本信息。
5、 根据权利要求4所述的方法,其特征在于,所述IM客户端接收 用户发送的插件下载请求之后,还包括IM客户端检测本地保存的插件标识信息中,是否包括所述插件名称 和版本信息;如果不包括,则执行依据所述插件名称和版本信息向所述对端客户端 请求插件的步骤。
6、 根据权利要求4所述的方法,其特征在于,所述IM客户端接收 用户发送的插件下载请求之后,还包括IM客户端向IM服务器发送所述插件名称和版本信息;IM客户端接收所述IM服务器根据所述插件名称和版本信息返回的插件签名信息;则所述IM客户端依据所述插件名称和版本信息向所述对端客户端请求插件,具体包括所述IM客户端向所述对端客户端发送所述插件名称和版本信息,以 及插件签名信息;相应的,所述对端客户端向所述IM客户端传输所述插件,具体包括 所述对端客户端检测接收到的插件签名信息和本地保存的插件签名 信息是否一致,如果是,则向所述IM客户端传输所述插件。
7、 根据权利要求1所述的方法,其特征在于,所述对端客户端向所 述IM客户端传输所述插件之后,还包括所述IM客户端在本地安装所述插件,并将所述插件对应的插件名称 和版本信息进行保存。
8、 根据权利要求1所述的方法,其特征在于,所述IM客户端接收 用户发送的插件下载请求,具体通过以下任意一种方式或者任意组合所述IM客户端接收用户在点击安装插件的统一资源定位符URL链 接或者对话框时,向IM客户端发送的请求;所述IM客户端接收用户在点击包括安装插件指示的浮出推广区域 时,向IM客户端发送的请求;所述IM客户端接收用户在点击包括安装插件指示的插件推广入口 时,向IM客户端发送的请求;所述IM客户端接收用户在接受当前系统默认的安装插件的用户协议 时,向IM客户端发送的请求。
9、 根据权利要求1所述的方法,其特征在于,所述IM客户端包括 插件管理器。
10、 根据权利要求1或2所述的方法,其特征在于,当检测到能够直 接访问的对端客户端为多个时,根据对端客户端的IP地址选择和所述IM 客户端属于同一接入运营商的对端客户端进行下载,和/或,同时向多个 对端客户端发起建立连接请求,并选择建立连接最快的对端客户端进行 下载。
11、 一种插件下载的系统,其特征在于,该系统包括 IM客户端,包括接收模块、请求插件模块和下载模块;其中,所述接收模块用于接收用户发送的插件下载请求;所述请求插 件模块用于当检测到能够直接访问的对端客户端时,在一定预置时间内, 依据所述插件下载请求向所述对端客户端请求插件;所述下载模块用于 当超出所述预置时间时,直接从下载服务器下载所述插件。
12、 根据权利要求IO所述的系统,其特征在于,所述请求插件模块, 具体包括检测子模块,用于检测是否存在当前在线的对端客户端; 判断子模块,用于当检测子模块的结果为是时,根据存储的所述在线的对端客户端的IP地址信息,判断所述在线的对端客户端中是否存在能够进行IP通讯的对端客户端;请求插件子模块,用于当所述判断子模块的结果为是时,依据所述插件标识信息向所述对端客户端请求插件。
13、 根据权利要求12所述的系统,其特征在于,所述请求插件子模 块,具体包括请求连接子模块,用于当所述判断子模块的结果为是时,向一个能够 直接访问的对端客户端发起建立连接请求;请求子模块,用于当连接建立成功时,向该一个对端客户端发送下载 插件请求;循环请求子模块,用于当连接建立失败时,循环向其他对端客户端发 起建立连接请求。
14、 根据权利要求11所述的系统,其特征在于,所述插件下载请求 包括插件名称和版本信息,则所述IM客户端还包括检测模块,用于IM客户端冲佥测本地保存的插件标识信息中,是否包 括所述插件名称和版本信息。
15、 根据权利要求14所述的系统,其特征在于,所述IM客户端还 包括发送模块,用于向IM服务器发送所述插件名称和版本信息;第二接收模块,用于接收所述IM服务器根据所述插件名称和版本信息返回的插件签名信息;则所述请求插件模块,具体用于当检测到能够直接访问的对端客户端时,向所述对端客户端发送所述插件名称和版本信息,以及插件签名信 台 则所述对端客户端,具体用于检测接收到的插件签名信息和本地保存的插件签名信息是否一致,如果是,则向所述IM客户端传输所述插件。
16、根据权利要求11所述的系统,其特征在于,所述IM客户端还 包括安装保存模块,用于在本地安装所述插件,并将所述插件对应的插件 名称和版本信息进行保存。
全文摘要
本申请提供了插件下载的方法和系统,所述方法包括即时通讯IM客户端接收用户发送的插件下载请求;当检测到能够直接访问的对端客户端时,在一定预置时间内,所述IM客户端依据所述插件下载请求向所述对端客户端请求插件;所述对端客户端向所述IM客户端传输所述插件;当超出所述预置时间时,所述IM客户端直接从下载服务器下载所述插件。与现有技术不同的是,在本申请实施例中,可以避免还需要设置种子服务器的过程,系统不需要维护种子服务器就节省了大量的网络资源,使得本实施例中插件下载的方法变得更为简单和易行。
文档编号H04L29/06GK101610226SQ20091015142
公开日2009年12月23日 申请日期2009年7月17日 优先权日2009年7月17日
发明者张利明, 卫 彭, 白振国, 波 闻 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1