[go: up one dir, main page]

TWI483187B - Plug-in download method and system - Google Patents

Plug-in download method and system Download PDF

Info

Publication number
TWI483187B
TWI483187B TW099106918A TW99106918A TWI483187B TW I483187 B TWI483187 B TW I483187B TW 099106918 A TW099106918 A TW 099106918A TW 99106918 A TW99106918 A TW 99106918A TW I483187 B TWI483187 B TW I483187B
Authority
TW
Taiwan
Prior art keywords
client
plug
plugin
peer
user
Prior art date
Application number
TW099106918A
Other languages
Chinese (zh)
Other versions
TW201131476A (en
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to TW099106918A priority Critical patent/TWI483187B/en
Publication of TW201131476A publication Critical patent/TW201131476A/en
Application granted granted Critical
Publication of TWI483187B publication Critical patent/TWI483187B/en

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Description

外掛程式下載的方法和系統Plug-in download method and system

本發明涉及網路交互領域,特別涉及一種外掛程式下載的方法和系統。The present invention relates to the field of network interaction, and in particular, to a method and system for downloading a plug-in program.

外掛程式是一種程式模組,符合服務平臺的接入規範,能夠運行於服務平臺的,並不是服務平臺本身所必須的功能或者業務模組,從物理形式上來看,包含但不局限於動態連結程式庫(Dynamic Linkable Library,DLL)。即時通訊(Instant Messaging,IM)指能夠即時發送和接收互聯網消息等的業務,通過IM功能,可以知道聯繫人是否正在線上,並可以與線上的聯繫人進行即時通信。IM軟體是通過即時通訊技術來實現線上聊天、交流的軟體,裝載了IM軟體的用戶端可以稱為IM用戶端,IM用戶端有時也會需要從伺服器下載外掛程式。A plug-in program is a program module that conforms to the access specification of the service platform and can run on the service platform. It is not a function or a service module that is necessary for the service platform itself. From a physical form, it includes but is not limited to a dynamic link. Dynamic Linkable Library (DLL). Instant Messaging (IM) refers to a service that can send and receive Internet messages on the Internet in real time. Through the IM function, you can know whether a contact is online or not, and can communicate instantly with online contacts. IM software is a software for realizing online chat and communication through instant messaging technology. A client loaded with IM software can be called an IM client, and an IM client sometimes needs to download a plug-in from a server.

在現有的IM用戶端進行外掛程式下載的過程中,採用是點對點的方式,這種方式需要存在種子伺服器,該種子伺服器用於記錄哪些用戶端擁有外掛程式資源,有什麼樣的外掛程式資源,以及各個用戶端的物理資訊等,例如用戶端的媒體存取存取控制(Media Access Control,MAC)位址,網路協定(Internet Protocol,IP)位址。當某個用戶端需要下載外掛程式資源時,可以通過某種途徑獲取該外掛程式資源的種子,並通過種子伺服器,根據種子記錄的外掛程式資訊嘗試從外掛程式下載伺服器上連接下載所需的外掛程式。In the process of downloading the plug-in program from the existing IM client, the peer-to-peer method is adopted. This method requires a seed server, which is used to record which clients have plug-in resources and what kind of plug-ins are available. Resources, as well as physical information of each client, such as the media access control (MAC) address of the client, and the Internet Protocol (IP) address. When a client needs to download the plug-in resource, the seed of the plug-in resource can be obtained through some means, and the seed server needs to download the connection from the plug-in download server according to the plug-in information of the seed record. Plugin.

從上述過程中可以看出,現有技術的下載外掛程式方式需要種子伺服器提供相應的種子,而種子伺服器佔用了較多的網路資源;更進一步的,當用戶端下載外掛程式並安裝完成後,還需要向種子伺服器同步更新的外掛程式資訊,這就又增加了維護種子伺服器的成本,並且使得操作更為複雜。As can be seen from the above process, the prior art download plug-in method requires the seed server to provide the corresponding seed, and the seed server occupies more network resources; further, when the client downloads the plug-in and installs it. Later, the updated plugin information needs to be synchronized to the seed server, which in turn increases the cost of maintaining the seed server and complicates the operation.

總之,目前需要本領域技術人員迫切解決的一個技術問題就是:如何能夠創新的提出一種外掛程式下載的方法,以解決現有技術中需要專門的種子伺服器,並且需要大量的同步操作帶來的網路資源浪費問題。In short, a technical problem that needs to be solved urgently by those skilled in the art is how to innovatively propose a plug-in downloading method to solve the problem that the prior art requires a dedicated seed server and requires a large number of synchronous operations. Road resource waste problem.

本申請所要解決的技術問題是提供一種外掛程式下載的方法,用以解決現有技術中需要專門的種子伺服器,並且需要大量的同步操作帶來的網路資源浪費問題。The technical problem to be solved by the present application is to provide a method for downloading a plug-in program, which solves the problem that the prior art requires a dedicated seed server and requires a large amount of synchronization of network resources.

本申請還提供了一種外掛程式下載的系統,用以保證上述方法在實際中的實現及應用。The application also provides a system for downloading a plug-in program to ensure the implementation and application of the above method in practice.

為了解決上述問題,本申請公開了一種外掛程式下載的方法,包括:即時通訊IM用戶端接收用戶發送的外掛程式下載請求;當檢測到能夠直接存取的對端用戶端時,在一定預置時間內,該IM用戶端依據該外掛程式下載請求向該對端用戶端請求外掛程式;當超出該預置時間時,該IM用戶端直接從下載伺服器下載該外掛程式。In order to solve the above problem, the present application discloses a method for downloading a plug-in program, comprising: an instant messaging IM client receiving a plug-in download request sent by a user; and when detecting a peer-end user terminal that can directly access, a certain preset The IM client requests a plug-in from the peer client according to the plug-in download request; when the preset time is exceeded, the IM client directly downloads the plug-in from the download server.

本申請還公開了一種外掛程式下載的系統,該系統包括:IM用戶端,包括接收模組、請求外掛程式模組和下載模組;其中,該接收模組用於接收用戶發送的外掛程式下載請求;該請求外掛程式模組用於當檢測到能夠直接存取的對端用戶端時,在一定預置時間內,依據該外掛程式下載請求向該對端用戶端請求外掛程式;該下載模組用於當超出該預置時間時,直接從下載伺服器下載該外掛程式。The application also discloses a system for downloading a plug-in program, the system comprising: an IM client, comprising a receiving module, a requesting plug-in module and a downloading module; wherein the receiving module is configured to receive a plug-in download sent by the user The requesting plug-in module is configured to, when detecting the peer-end client that can be directly accessed, request a plug-in from the peer-end client according to the plug-in download request within a certain preset time; the downloading mode The group is used to download the plugin directly from the download server when the preset time is exceeded.

與現有技術相比,本申請包括以下優點:在本申請實施例中,即時通訊IM用戶端接收用戶發送的外掛程式下載請求,該外掛程式下載請求包括外掛程式名稱和版本資訊;當檢測到能夠直接存取的對端用戶端時,則該IM用戶端在一定預置時間內,依據該外掛程式名稱和版本資訊向該對端用戶端請求外掛程式;當該對端用戶端儲存有該外掛程式時,該IM用戶端接收該對端用戶端傳輸的外掛程式,當超出該預置時間時,該IM用戶端直接從下載伺服器下載該外掛程式。可以看出,本申請並沒有採用種子伺服器,而是利用IM用戶端的線上對端用戶端(即是好友用戶端)所保存的外掛程式,從而直接為該IM用戶端提供該外掛程式,這樣就避免了還需要設置種子伺服器的過程,系統不需要維護種子伺服器就節省了伺服器的資源以及伺服器的網路資源,使得本實施例中外掛程式下載的方法變得更為簡單和易行;進一步的,還避免了IM用戶端在安裝外掛程式之後需要向下載伺服器同步上傳外掛程式資訊的操作。Compared with the prior art, the present application includes the following advantages: In the embodiment of the present application, the IM client receives the plug-in download request sent by the user, and the plug-in download request includes the plug-in name and version information; When the peer end user directly accesses, the IM client requests the plug-in program to the peer end user according to the plug-in name and version information within a certain preset time; when the peer end user stores the plug-in In the program, the IM client receives the plug-in transmitted by the peer client, and when the preset time is exceeded, the IM client directly downloads the plug-in from the download server. It can be seen that the application does not use the seed server, but uses the plug-in saved by the online client (ie, the friend client) of the IM client, thereby directly providing the plug-in for the IM client. The process of setting up the seed server is avoided, and the system does not need to maintain the seed server to save the resources of the server and the network resources of the server, so that the method for downloading the plug-in in the embodiment is simpler and Further, it is further avoided that the IM client needs to synchronously upload the information of the plug-in to the download server after installing the plug-in.

下面將結合本發明實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present application without departing from the inventive scope are the scope of the present application.

本申請可用於眾多通用或專用的計算裝置環境或配置中。例如:個人電腦、伺服器電腦、手持設備或可擕式設備、平板型設備、多處理器裝置、包括以上任何裝置或設備的分散式計算環境等等。This application can be used in a variety of general purpose or special purpose computing device environments or configurations. For example: personal computers, server computers, handheld devices or portable devices, tablet devices, multi-processor devices, decentralized computing environments including any of the above devices or devices, and the like.

本申請可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式計算環境中實踐本申請,在這些分散式計算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。The application can be described in the general context of computer-executable instructions executed by a computer, such as a program module. Generally, a program module includes routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types. The present application can also be practiced in a distributed computing environment where tasks are performed by remote processing devices that are connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media, including storage devices.

本申請的主要思想之一包括,即時通訊IM用戶端接收用戶發送的外掛程式下載請求,該外掛程式下載請求包括外掛程式名稱和版本資訊;當檢測到能夠直接存取的對端用戶端時,則該IM用戶端依據該外掛程式名稱和版本資訊向該對端用戶端請求外掛程式;當該對端用戶端儲存有該外掛程式時,該IM用戶端接收該對端用戶端傳輸的外掛程式。One of the main ideas of the application includes that the IM client receives the plug-in download request sent by the user, and the plug-in download request includes the plug-in name and version information; when detecting the peer client that can directly access, The IM client requests a plug-in from the peer client according to the plug-in name and version information; when the peer client stores the plug-in, the IM client receives the plug-in transmitted by the peer client. .

本申請在實際應用中的系統架構可以參考圖1所示,其中包括下載伺服器、IM伺服器、IM用戶端和對端用戶端。其中,下載伺服器用於當圖中該對端用戶端無法向該IM用戶端提供外掛程式時,由該IM用戶端直接向下載伺服器請求外掛程式,該IM伺服器用於向該IM用戶端提供其聯繫人用戶端(即是對端用戶端)的位址資訊,包括IP位址資訊和MAC位址資訊,該對端用戶端可以是多個,能夠線上向該IM用戶端提供所需的外掛程式。The system architecture of the present application in practical applications can be referred to FIG. 1 , which includes a download server, an IM server, an IM client, and a peer client. The download server is used to request a plug-in from the IM server directly to the download server when the peer user cannot provide the plug-in to the IM client, and the IM server is used to send the plug-in to the IM user. The terminal provides the address information of the contact client (that is, the peer client), including the IP address information and the MAC address information. The peer user terminal may be multiple, and the terminal can provide the IM client online. The plugin required.

參考圖2,示出了本申請一種外掛程式下載的方法實施例1的流程圖,可以包括以下步驟:步驟201:IM用戶端接收用戶發送的外掛程式下載請求;其中,用戶向該IM用戶端發送外掛程式下載請求,在實際中可以包括多種方式,例如,用戶點擊某個安裝外掛程式的統一資源定位符URL鏈結或者對話方塊;或者,用戶點擊某個IM運營商提供的、包括安裝外掛程式指示的外掛程式推廣入口,該外掛程式推廣入口可以包含URL,可以為處於用戶主介面或者聊天視窗等處的入口按鈕或者類似入口;或者,用戶點擊某個IM運營商的浮出推廣區域,一般情況下為系統任務欄在右下角浮出的頁面區域;或者,用戶接受了當前系統預設的安裝外掛程式的用戶協定後,由系統預設觸發外掛程式安裝;該外掛程式下載請求可以包括外掛程式的名稱以及版本資訊,可以根據外掛程式的名稱及版本來唯一確定一個外掛程式;在實際應用中,可以由IM用戶端的外掛程式管理器來截取用戶觸發的外掛程式下載請求,該外掛程式管理器是該IM用戶端的一個功能模組;步驟202:當檢測到能夠直接存取的對端用戶端時,則在一定預置時間內,該IM用戶端依據該外掛程式下載請求向該對端用戶端請求外掛程式;IM用戶端可以在接收到用戶發送的外掛程式下載請求之後,檢測該IM用戶端是否存在能夠直接存取的對端用戶端,該能夠直接存取,即是該IM用戶端與該對端用戶端是否能夠無需通過IM伺服器而直接進行IP通訊;其中,該對端用戶端也是一個與IM伺服器相連的IM用戶端,能夠進行即時通訊;具體的,可以根據IM用戶端記錄的好友位址資訊列表中的IP位址資訊來檢測IM用戶端與對端用戶端之間是否能直接存取;該一定預置時間可以根據IM用戶端的實際需求,或者網路的實際運行情況來設定,例如,10秒鐘;本申請無需對此做出限定,一定預置時間的大小並不影響本申請的實現;其中,該好友位址資訊列表可以如下所示:Referring to FIG. 2, a flowchart of Embodiment 1 of a method for downloading a plug-in program of the present application is shown, which may include the following steps: Step 201: An IM client receives a plug-in download request sent by a user; wherein, the user sends the plug-in to the IM client. Sending a plug-in download request may include a plurality of methods in practice, for example, the user clicks on a Uniform Resource Locator URL link or a dialog box of an installation plug-in; or the user clicks on an IM-provider, including the installation plug-in The plug-in promotion entry of the program, the plug-in promotion portal may include a URL, which may be an entry button or the like at the user's main interface or chat window; or the user clicks on an IM operator's floating promotion area. Generally, the page area of the system task bar is raised in the lower right corner; or, after the user accepts the user agreement of the current system preset installation plug-in program, the plug-in installation is triggered by the system preset; the plug-in download request may include The name and version information of the plugin can be based on the plugin's The name and version are used to uniquely identify a plug-in; in the actual application, the plug-in download request triggered by the user can be intercepted by the plug-in manager of the IM client, and the plug-in manager is a function module of the IM client; 202: When detecting the peer client that can be directly accessed, the IM client requests the plug-in to the peer client according to the plug-in download request within a certain preset time; the IM client can receive After the downloading request sent by the user is sent to the user, it is detected whether the IM client has a peer user that can be accessed directly, and the access can be directly accessed, that is, whether the IM client and the peer user can pass the IM. The server directly performs IP communication; wherein the peer end user is also an IM client connected to the IM server, capable of instant messaging; specifically, the IP address in the friend address information list recorded by the IM client The address information is used to detect whether the IM client and the peer user can directly access; the preset time can be based on the IM client. The actual demand of the network, or the actual operation of the network, for example, 10 seconds; this application does not need to limit this, the size of the preset time does not affect the implementation of the application; wherein the friend address information list Can be as follows:

根據IP位址資訊可以從相關標準中知道哪一段IP位址屬於公網地址,哪一段IP位址屬於私有網段,即是區域網路,只有當對端用戶端的IP位址屬於公網地址時,例如,新浪IP地址,才能夠和該IM用戶端無需通過IM伺服器直接進行IP通訊;因為如果對端用戶端的IP地址如果不是公網就屬於區域網路位址了,而區域網路的IP位址在本申請實施例中認為是不可直接存取的,例如某個公司內部的IP位址,很可能就會因為一些特殊的設置參數而無法被外部的網路直接進行存取;因此,本步驟中能夠直接存取的對端用戶端的方法,具體包括:子步驟A1:該IM用戶端檢測是否存在當前線上的對端用戶端,如果是,則進入子步驟A2;子步驟A2:根據儲存的該線上的對端用戶端的IP位址資訊,判斷該線上的對端用戶端中是否存在能夠進行IP通訊的對端用戶端;如果檢測得到這樣的對端用戶端,則該IM用戶端向該對端用戶端請求該外掛程式名稱和版本資訊對應的外掛程式,具體可以通過發送一個下載外掛程式請求來實現;步驟203:該對端用戶端向該IM用戶端傳輸該外掛程式。According to the IP address information, it can be known from the relevant standards which IP address belongs to the public network address, and which IP address belongs to the private network segment, that is, the regional network, only when the IP address of the opposite client belongs to the public network address. For example, the Sina IP address can directly communicate with the IM client without using the IM server; because if the IP address of the peer user is not a public network, it belongs to the local area network address, and the local area network The IP address is considered to be inaccessible in the embodiment of the present application. For example, an internal IP address of a company may not be directly accessed by an external network due to some special setting parameters; Therefore, the method for the peer end user that can be directly accessed in this step includes: sub-step A1: the IM client detects whether there is a peer user end on the current line, and if yes, proceeds to sub-step A2; sub-step A2 : determining, according to the stored IP address information of the peer client on the line, whether there is a peer user end capable of IP communication in the peer client on the line; if the detection is such The peer user, the IM client requests the plugin name and the plugin corresponding to the version information to the peer client, which can be implemented by sending a download plugin request; Step 203: The peer user side The IM client transmits the plugin.

一般情況下,在該一定預置時間內,該對端用戶端接收到IM用戶端發送的下載外掛程式請求之後,在本地檢測是否存在該外掛程式,如果存在,則該對端用戶端向該IM用戶端傳輸該外掛程式。其中,當該對端用戶端不存在該外掛程式時,可以向該IM用戶端返回無外掛程式的提示資訊,則該IM用戶端可以繼續向其他能夠直接存取的對端用戶端請求該外掛程式,直至能夠請求到該外掛程式為止。Generally, after receiving the download plug-in request sent by the IM client, the peer end user locally detects whether the plug-in is present, and if so, the peer user The IM client transmits the plugin. When the peer user does not have the plugin, the prompt information of the pluginless program can be returned to the IM client, and the IM client can continue to request the plugin from other peer clients that can directly access the plugin. Program until you can request the plugin.

需要說明的是,當超出該預置時間時,該IM用戶端直接從下載伺服器下載該外掛程式,因為有可能IM用戶端無法等待太長時間,或者導致請求外掛程式的時間過長的原因是IM用戶端幾乎沒有對端用戶端在線上,所以,當IM用戶端向對端用戶端請求外掛程式的時間超過了預先設定的時間,則直接從下載伺服器下載該外掛程式。It should be noted that, when the preset time is exceeded, the IM client directly downloads the plug-in from the download server, because it is possible that the IM client cannot wait too long or causes the requesting plug-in to take too long. The IM client has almost no peer client online. Therefore, when the IM client requests the plug-in from the peer client for more than a predetermined time, the plug-in is downloaded directly from the download server.

在本實施例中,通過由IM用戶端在接收到外掛程式下載請求之後,直接檢測是否存在能夠直接存取的對端用戶端,當檢測到這樣的對端用戶端時,可以直接向該對端用戶端請求所需的外掛程式,最後接收該對端用戶端傳輸的外掛程式,這樣就避免了還需要設置種子伺服器的過程,系統不需要維護種子伺服器就節省了大量伺服器的資源和伺服器的網路資源,使得本實施例中外掛程式下載的方法變得更為簡單和易行。In this embodiment, after receiving the download request from the IM client, the IM client directly detects whether there is a peer user that can be directly accessed. When such a peer user terminal is detected, the pair may directly The end user requests the required plug-in program, and finally receives the plug-in program transmitted by the peer-end client, thereby avoiding the process of setting the seed server, and the system does not need to maintain the seed server to save a lot of server resources. And the network resources of the server make the downloading method of the plug-in in this embodiment more simple and easy.

參考圖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用戶端直接從下載伺服器下載該外掛程式。Referring to FIG. 3, a flowchart of Embodiment 2 of a method for downloading a plug-in program of the present application is shown, which may include the following steps: Step 301: The IM client receives a plug-in download request sent by a user, and the plug-in download request includes a plug-in program. Name and version information; in the actual application, the IM client includes a plug-in manager, and the execution body of the embodiment may also be implemented by using a plug-in manager; Step 302: The IM client detects whether there is a peer on the current line. The user terminal, if yes, proceeds to step 303; it can detect that the peer user terminal is in the online state in the friend address information list of the IM client, in the embodiment of the present application, the peer user terminal is the same All the contact users added by the IM client; the IM server will push the status of the peer user to the IM client when the IM client logs in, and the IM server will also be in any one of the peer users. When the status of the terminal changes, the status of the updated peer user is pushed to the IM client; in this step, if no If there is a peer user currently on the network, the IM client directly requests the plugin from the download server; Step 303: Determine the online address according to the stored IP address information of the peer user on the online Whether there is a peer client capable of IP communication in the peer client, if yes, proceed to step 304; when the IM client logs in, the IM server pushes the address information of the peer client on the line. To the IM client, the IM client stores the address information; in this step, the peer address can be known based on the IP address information, for example, whether it belongs to the public network or the regional network. Whether the user terminal and the IM client can directly perform IP communication; and can determine which operator belongs to the IP address information according to the IP address information, and can further preferentially select the peer user terminal of the same operator to communicate; in this step, if If it is detected that there is no peer user that can perform IP communication, the IM client directly requests the plug-in from the download server; Step 304: The IM is used within a preset time. The client initiates a connection establishment request to a peer end user. When the connection establishment is successful, the process proceeds to step 305. When the connection establishment fails, the process proceeds to step 306; the IM user terminal sends the peer user to the peer user who can directly perform IP communication. The terminal initiates the establishment of the connection request, and may initiate the connection to one of the opposite end users in a loop manner, wherein the connection between the two user terminals may be a TCP connection; the preset time is preferably selected for 10 seconds. It should be noted that when it is detected that there are multiple peer UEs that can communicate directly, one of them can be randomly selected, or the IM client can be selected by judging the IP address of the peer client. The peer client belonging to the same operator downloads. For example, if the IM client is a subscriber of the telecommunications carrier, the peer client of the telecom operator is preferentially selected for download; if there are multiple peers belonging to the same operator On the client side, the peer end user can be selected again from the physical address; in general, the same operator's client side is different than the different operations. The download speed between the users is fast, and the same operator can select the user with the physical address to download. In actual operation, it can be implemented according to the MAC address; of course, it can also be started. The thread, that is, the connection establishment request is initiated to the plurality of peer users at the same time, and then the connection client with the fastest connection is selected, and those skilled in the art can know which peer to download the plug-in. According to the actual network situation and the user's needs, the application does not limit the download mode; Step 305: The IM client sends a download plug-in request to the peer user, and proceeds to step 307; Step 306 The IM client loops to initiate establishment of a connection request to other peer users until the connection is successfully established, and proceeds to step 307; the IM client can loop back to establish a connection request to other peer users that can directly perform IP communication. Until the IM client can successfully establish a connection with a peer user; it should be noted that when all eligible I If the M client fails to establish a connection, the client requests the plugin from the download server to download directly from the download server. Step 307: The peer user transmits the plugin to the IM client; When receiving the download plug-in request sent by the IM client, the end user locally detects whether the plug-in is saved, and if so, directly transmits the plug-in to the IM client; Step 308: The IM client The plugin is installed locally, and the plugin name and version information corresponding to the plugin are saved. Step 309: When the preset time is exceeded, the IM client directly downloads the plugin from the download server.

其中,步驟308和步驟309為選擇執行的步驟,在這裏為了方便描述,將其按照先後關係進行佈局,本領域技術人員可以知道,步驟308和步驟309並不存在先後順序關係。Step 308 and step 309 are steps for selecting and executing, and are arranged in a sequential relationship for convenience of description. Those skilled in the art may know that step 308 and step 309 do not have a sequential relationship.

在本實施例中,該IM用戶端在接收到該外掛程式之後,在本地安裝該外掛程式,並將該外掛程式對應的外掛程式名稱和版本資訊進行保存,需要說明的是,和現有技術不同的是,此處只需保存在IM用戶端本地即可,無需上傳至伺服器,因此,本實施例中不僅可以不需要種子伺服器,節約了伺服器的資源和伺服器的網路資源,還可以省略IM用戶端向種子伺服器上傳外掛程式安裝的同步操作,因此,更加節約了伺服器的網路交互資源。In this embodiment, after receiving the plugin, the IM client locally installs the plugin, and saves the plugin name and version information corresponding to the plugin, which needs to be described as different from the prior art. In this case, the server does not need to be uploaded to the server. Therefore, in this embodiment, not only the seed server but also the server resources and the server network resources are saved. It is also possible to omit the synchronization operation of the IM client uploading the plug-in installation to the seed server, thereby saving the network interaction resources of the server.

參考圖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用戶端在本地安裝該外掛程式,並將該外掛程式對應的外掛程式名稱、版本資訊和簽名資訊進行保存。Referring to FIG. 4, a flowchart of Embodiment 3 of a method for downloading a plug-in program of the present application is shown. This embodiment can be understood as a specific example of the application in the actual application, and may include the following steps: Step 401: User in IM The client logs in to the IM software; Step 402: The IM server sends the address information of the peer user on the line to the IM client; after the user logs in to the IM software, the IM server sends the peer on the line to the IM client. The address information of the user terminal; Step 403: The IM client records the address information in the friend address information list; the IM client can record the address information through the friend address information list, and the foregoing steps are in Embodiment 1 and implemented. It has been described in detail in Example 2, and will not be described here. Step 404: The plug-in manager of the IM client receives the user's click on the Uniform Resource Locator URL link or dialog box of the plug-in, and then goes to the IM client. Send a request, which includes the plugin name and version information; when the user clicks on the URL link or dialog box of the plugin, it sends the message to the IM server. Sending the request, but the IM client first intercepts the request and performs subsequent operations; the request includes the plugin name and version information, and can uniquely identify a plugin; Step 405: The plugin manager detects the locally saved plugin identifier In the information, whether the plugin name and version information are included, if not, proceed to step 406; in this embodiment, the plugin manager detects whether the plugin name is included in the locally stored plugin identification information. And the version information, if it is already included, it can be obtained directly from the local; Step 406: The plugin manager sends the plugin name and version information to the IM server; Step 407: The plugin manager receives the IM server according to The plugin name and version information returned by the plugin signature information; in this example, preferably, the plugin manager can also send the plugin name and version information to the IM server; the IM server receives the plugin name And the version information, query the plugin signature information, The signature information is a hash value of the Message-digest Algorithm 5 (MD5), which is used to uniquely identify the installation package information of a plug-in, and can be used to determine whether the plug-in is modified. The IM server sends the signature information to the IM client. Step 408: The plugin manager detects whether there is a peer client currently online, and if yes, proceeds to step 409; Step 409: The plugin manager stores according to the The IP address information of the peer end user on the line determines whether there is a peer user end capable of IP communication in the peer end user on the line, and if yes, proceeds to step 410; Step 410: At a preset time The plugin manager sends a download plugin request to the peer client, the download plugin request includes the plugin name and version information, and the plugin signature information; in this example, different from the first two embodiments. The downloading plugin request sent by the plugin manager to the peer client includes the plugin name and version information, and Including the plug-in signature information; step 411: the peer end user detects whether the received plug-in signature information is consistent with the locally saved plug-in signature information, and if so, transmits the plug-in to the IM client; the peer The user end detects whether the signature information of the plug-in program and the signature information of the locally stored plug-in program are consistent. When the user is inconsistent, the user may return a prompt error message to the IM client, or may return a prompt message without the plug-in. The IM client can directly download the plug-in from the download server; if the client is consistent, the peer user transmits the plug-in to the IM client; Step 412: The IM client installs the plug-in locally. The plugin name, version information, and signature information corresponding to the plugin are saved.

需要說明的是,根據本申請實施例,本領域技術人員可以很容易的想到,當所有對端用戶端都不存在該IM用戶端所需的外掛程式時,該對端用戶端可以繼續向各自的好友用戶端發送外掛程式請求,直至其中一個對端用戶端能夠找到保存了該外掛程式的好友用戶端,或者好友用戶端繼續向好友發送外掛程式請求,直至找到該外掛程式為止;當然,如果在一定時間內查詢不到該外掛程式,還可以直接從下載伺服器進行下載,該一定時間可以根據實際的網路情況任意設置。It should be noted that, according to the embodiment of the present application, those skilled in the art can easily think that when all the peer users do not have the plug-in required by the IM client, the peer client can continue to The buddy client sends a plugin request until one of the peer clients can find the buddy client that saved the plugin, or the buddy client continues to send the plugin request to the friend until the plugin is found; of course, if The plug-in can not be queried within a certain period of time, and can also be downloaded directly from the download server. The certain time can be arbitrarily set according to the actual network conditions.

對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模組並不一定是本申請所必須的。For the foregoing method embodiments, for the sake of brevity, they are all described as a series of action combinations, but those skilled in the art should understand that the present application is not limited by the described action sequence, because according to the present application, Some steps can be performed in other orders or at the same time. In the following, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.

與上述本申請一種外掛程式下載的方法實施例1所提供的方法相對應,參見圖5,本申請還提供了一種外掛程式下載的系統實施例1,在本實施例中,該系統可以包括:IM用戶端501,包括接收模組5011、請求外掛程式模組5012和下載模組5013;其中,該接收模組5011用於接收用戶發送的外掛程式下載請求;該請求外掛程式模組5012用於當檢測到能夠直接存取的對端用戶端時,在一定預置時間內,依據該外掛程式下載請求向該對端用戶端請求外掛程式;該下載模組5013用於當超出該預置時間時,直接從下載伺服器下載該外掛程式;其中,用戶向該IM用戶端發送外掛程式下載請求,在實際中可以包括多種方式,例如,用戶點擊某個安裝外掛程式的統一資源定位符URL鏈結或者對話方塊;或者,用戶點擊某個IM運營商提供的、包括安裝外掛程式指示的外掛程式推廣入口,該外掛程式推廣入口可以包含URL,可以為處於用戶主介面或者聊天視窗等處的入口按鈕或者類似入口;或者,用戶點擊某個IM運營商的浮出推廣區域,一般情況下為系統任務欄在右下角浮出的頁面區域;或者,用戶接受了當前系統預設的安裝外掛程式的用戶協定後,由系統預設觸發外掛程式安裝;該外掛程式下載請求可以包括外掛程式的名稱以及版本資訊,可以根據外掛程式的名稱及版本來唯一確定一個外掛程式;在實際應用中,可以由IM用戶端的外掛程式管理器來截取用戶觸發的外掛程式下載請求,該外掛程式管理器是該IM用戶端的一個功能模組;對端用戶端502,用於向該IM用戶端傳輸該外掛程式。The method provided in the method embodiment 1 of the plug-in downloading method of the present application is as described above. Referring to FIG. 5, the present application further provides a system embodiment 1 for downloading a plug-in program. In this embodiment, the system may include: The IM client 501 includes a receiving module 5011, a requesting plug-in module 5012, and a downloading module 5013. The receiving module 5011 is configured to receive a plug-in download request sent by a user. The request plug-in module 5012 is configured to: When detecting the peer client that can be directly accessed, the plug-in program is requested from the peer client according to the plug-in download request within a certain preset time; the download module 5013 is configured to exceed the preset time. The plug-in program is downloaded directly from the download server. The user sends a plug-in download request to the IM client. In practice, the user may include multiple methods, for example, the user clicks on the uniform resource locator URL chain of an installer. a node or a dialog box; or, the user clicks on a plug-in promotion portal provided by an IM operator, including an installation plug-in instruction. The plugin promotion portal may include a URL, which may be an entry button or a similar entry at the user's main interface or chat window, or the user clicks on an IM operator's floating promotion area, generally the system taskbar is on the right. The page area that appears in the lower corner; or, after the user accepts the user agreement of the current system preset installation plug-in, the plug-in installation is triggered by the system preset; the plug-in download request may include the name and version information of the plug-in, According to the name and version of the plug-in, a plug-in program is uniquely determined. In the actual application, the user-triggered plug-in download request can be intercepted by the plug-in manager of the IM client, and the plug-in manager is a function of the IM client. The client terminal 502 is configured to transmit the plugin to the IM client.

一般情況下,該對端用戶端接收到IM用戶端發送的下載外掛程式請求之後,可以首先在本地檢測是否存在該外掛程式,如果存在,則該對端用戶端向該IM用戶端傳輸該外掛程式。其中,當該對端用戶端不存在該外掛程式時,可以向該IM用戶端返回無外掛程式的提示資訊,則該請求外掛程式模組5012可以繼續向其他能夠直接存取的對端用戶端請求該外掛程式,直至能夠請求到該外掛程式為止。In general, after receiving the request of the download plugin sent by the IM client, the peer end user may first detect whether the plugin exists locally, and if so, the peer end user transmits the plugin to the IM client. Program. The requesting plug-in module 5012 can continue to other peer-end clients that can directly access the plug-in information of the plug-in program when the peer-end client does not have the plug-in program. Request the plugin until it can request the plugin.

在本實施例中,通過由IM用戶端在接收到外掛程式下載請求之後,直接檢測是否存在能夠直接存取的對端用戶端,當檢測到這樣的對端用戶端時,可以直接向該對端用戶端請求所需的外掛程式,最後接收該對端用戶端傳輸的外掛程式,這樣就避免了還需要設置種子伺服器的過程,系統不需要維護種子伺服器就節省了大量伺服器的資源和伺服器的網路資源,使得本實施例中外掛程式下載的方法變得更為簡單和易行。In this embodiment, after receiving the download request from the IM client, the IM client directly detects whether there is a peer user that can be directly accessed. When such a peer user terminal is detected, the pair may directly The end user requests the required plug-in program, and finally receives the plug-in program transmitted by the peer-end client, thereby avoiding the process of setting the seed server, and the system does not need to maintain the seed server to save a lot of server resources. And the network resources of the server make the downloading method of the plug-in in this embodiment more simple and easy.

與上述本申請一種外掛程式下載的方法實施例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,具體可以包括:請求連接子模組,用於當該判斷子模組的結果為是時,向一個能夠直接存取的對端用戶端發起建立連接請求;請求子模組,用於當連接建立成功時,向該一個對端用戶端發送下載外掛程式請求;迴圈請求子模組,用於當連接建立失敗時,迴圈向其他對端用戶端發起建立連接請求;安裝保存模組604,用於在本地安裝該外掛程式,並將該外掛程式對應的外掛程式名稱和版本資訊進行保存。Corresponding to the method provided in Embodiment 2 of the method for downloading a plug-in program of the present application, referring to FIG. 6, the present application further provides a preferred embodiment 2 of a system for downloading a plug-in program. In this embodiment, the system specifically The receiving module 5011 is configured to receive a plug-in download request sent by the user, the plug-in download request includes a plug-in name and version information, and the detecting sub-module 601 is configured to detect whether the current The peer end user on the line; the detecting sub-module 601 can detect the number of peer users in the online address information list of the IM client, and in the embodiment of the present application, the peer user end All the contact users added by the IM client; the IM server will push the status of the peer user to the IM client when the IM client logs in, and the IM server will also be in any one of the When the status of the peer end user changes, the status of the updated peer end user is pushed to the IM user terminal; if the detecting submodule 601 detects If there is a peer user on the current line, the IM client directly requests the plug-in from the download server; and the judgment sub-module 602 is configured to: when the result of detecting the sub-module is YES, according to the stored line The IP address information of the peer end user determines whether there is a peer user end capable of IP communication in the peer end user on the line; when the IM client is logged in, the IM server will be the peer user on the line. The address information of the terminal is pushed to the IM client, and the IM client stores the address information; in this step, according to the meaning indicated by the IP address information, for example, whether it belongs to the public network, or The local area network, etc., knows whether the peer end user and the IM user end can directly perform IP communication; and can determine which operator belongs to according to the IP address information, and can further preferentially select the peer end user of the same operator. Communicating; requesting the plug-in sub-module 603, when the result of the judging sub-module is YES, requesting the plug-in from the peer end user according to the plug-in identifier information; The program sub-module 603 may specifically include: a request connection sub-module, configured to initiate a connection establishment request to a peer user that can directly access when the result of the judging sub-module is YES; requesting a sub-module For sending a download plugin request to the peer end user when the connection is successfully established; the loop request submodule is configured to initiate a connection establishment request to the other peer end users when the connection establishment fails; The installation save module 604 is configured to install the plugin locally and save the plugin name and version information corresponding to the plugin.

該系統還可以包括:對端用戶端502,用於向該IM用戶端傳輸該外掛程式。The system may further include: a peer end client 502, configured to transmit the plugin to the IM client.

在本實施例中,該IM用戶端在接收到該外掛程式之後,在本地安裝該外掛程式,並將所該外掛程式對應的外掛程式名稱和版本資訊進行保存,需要說明的是,和現有技術不同的是,此處只需保存在IM用戶端本地即可,無需上傳至伺服器,因此,本實施例中不僅可以不需要種子伺服器,節約了網路資源,還可以省略IM用戶端向種子伺服器上傳外掛程式安裝的同步操作,因此,更加節約了伺服器的資源和伺服器的網路交互資源。In this embodiment, after receiving the plugin, the IM client locally installs the plugin, and saves the plugin name and version information corresponding to the plugin, which needs to be explained, and the prior art. The difference is that the IM user can be saved locally in the IM client. Therefore, in this embodiment, the seed server can be saved, the network resources can be saved, and the IM client can be omitted. The seed server uploads the synchronization operation of the plug-in installation, thus saving the server resources and the server's network interaction resources.

同時,在本申請的另一個實施例中,參考圖7所示,該IM用戶端還可以包括:檢測模組701,用於檢測本地保存的外掛程式標識資訊中,是否包括該外掛程式名稱和版本資訊;發送模組702,用於向IM伺服器發送該外掛程式名稱和版本資訊;第二接收模組703,用於接收該IM伺服器根據該外掛程式名稱和版本資訊返回的外掛程式簽名資訊;則該請求外掛程式模組5012,具體用於當檢測到能夠直接存取的對端用戶端時,向該對端用戶端發送該外掛程式名稱和版本資訊,以及外掛程式簽名資訊;則該對端用戶端502,具體用於檢測接收到的外掛程式簽名資訊和本地保存的外掛程式簽名資訊是否一致,如果是,則向該IM用戶端傳輸該外掛程式。Meanwhile, in another embodiment of the present application, referring to FIG. 7, the IM client may further include: a detecting module 701, configured to detect whether the plugin name and the plugin name are included in the locally saved plugin identification information. The version information 702 is configured to send the plugin name and version information to the IM server, and the second receiving module 703 is configured to receive the plugin signature returned by the IM server according to the plugin name and version information. The requesting plug-in module 5012 is specifically configured to send the plug-in name and version information and the plug-in signature information to the peer end user when detecting the peer-end user end that can be directly accessed; The peer client 502 is specifically configured to detect whether the received plugin signature information is consistent with the locally saved plugin signature information, and if yes, transmit the plugin to the IM client.

需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對於系統類實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。It should be noted that each embodiment in the specification is described in a progressive manner, and each embodiment focuses on differences from other embodiments, and the same similar parts between the embodiments are referred to each other. can. For the system class embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.

還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。並且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括該要素的過程、方法、物品或者設備中還存在另外的相同要素。It should also be noted that, in this context, relational terms such as first and second, etc. are used merely to distinguish one entity or operation from another entity or operation, without necessarily requiring or implying such entities or operations. There is any such actual relationship or order between them. Also, the term "comprises" or "comprises" or "comprises" or any other variations thereof is intended to encompass a non-exclusive inclusion, such that a process, method, article, or device that includes a plurality of elements includes not only those elements but also Other elements, or elements that are inherent to such a process, method, item, or device. An element defined by the phrase "comprising a ..." does not exclude the presence of additional equivalent elements in the process, method, item, or device that comprises the element.

以上對本申請所提供的一種外掛程式下載的方法及系統進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。The method and system for downloading a plug-in program provided by the present application are described in detail. The principles and implementation manners of the present application are described in the following. The description of the above embodiments is only used to help understand the present application. The method and its core idea; at the same time, those skilled in the art, according to the idea of the present application, there will be changes in the specific implementation manner and the scope of application, in summary, the contents of this specification should not be construed as Application restrictions.

501...IM用戶端501. . . IM client

5011...接收模組5011. . . Receiving module

5012...請求外掛程式模組5012. . . Request plugin module

5013...下載模組5013. . . Download module

502...對端用戶端502. . . Peer client

601...檢測子模組601. . . Detection submodule

602...判斷子模組602. . . Judging submodule

603...請求外掛程式子模組603. . . Request plugin submodule

604...安裝保存模組604. . . Install save module

701...檢測模組701. . . Detection module

702...發送模組702. . . Sending module

703...第二接收模組703. . . Second receiving module

為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings to be used in the embodiments or the description of the prior art will be briefly described below. Obviously, the drawings in the following description are only Some embodiments of the application may also be used to obtain other figures from those of ordinary skill in the art without departing from the scope of the invention.

圖1是本申請在實際應用中的系統架構圖;1 is a system architecture diagram of the present application in practical application;

圖2是本申請的一種外掛程式下載的方法實施例1的流程圖;2 is a flowchart of Embodiment 1 of a method for downloading a plug-in program of the present application;

圖3是本申請的一種外掛程式下載的方法實施例2的流程圖;3 is a flowchart of Embodiment 2 of a method for downloading a plug-in program of the present application;

圖4是本申請的一種外掛程式下載的方法實施例3的流程圖;4 is a flowchart of Embodiment 3 of a method for downloading a plug-in program of the present application;

圖5是本申請的一種外掛程式下載的系統實施例1的結構框圖;5 is a structural block diagram of Embodiment 1 of a system for downloading a plug-in program of the present application;

圖6是本申請的一種外掛程式下載的系統實施例2的結構框圖;6 is a structural block diagram of Embodiment 2 of a system for downloading a plug-in program of the present application;

圖7是本申請的一種外掛程式下載的系統實施例2中IM用戶端的部分結構框圖。FIG. 7 is a partial structural block diagram of an IM client in a system embodiment 2 of a plug-in download of the present application.

Claims (15)

一種外掛程式下載的方法,其特徵在於,該方法包括:即時通訊IM用戶端接收用戶發送的外掛程式下載請求;當檢測到能夠直接存取的對端用戶端時,在一定預置時間內,該IM用戶端依據該外掛程式下載請求向該對端用戶端請求外掛程式;當超出該預置時間時,該IM用戶端直接從下載伺服器下載該外掛程式。A method for downloading a plug-in program, the method comprising: an instant messaging IM client receiving a plug-in download request sent by a user; and when detecting a peer-end user terminal that can be directly accessed, within a certain preset time, The IM client requests a plug-in from the peer client according to the plug-in download request; when the preset time is exceeded, the IM client directly downloads the plug-in from the download server. 根據申請專利範圍第1項所述的方法,其中,檢測能夠直接存取的對端用戶端的方法,具體包括:該IM用戶端檢測是否存在當前線上的對端用戶端;如果是,則根據儲存的該線上的對端用戶端的IP位址資訊,判斷該線上的對端用戶端中是否存在能夠直接進行IP通訊的對端用戶端。The method of claim 1, wherein the method for detecting a peer end user that can be directly accessed includes: detecting, by the IM client, whether there is a peer user end on the current line; if yes, according to the storing The IP address information of the peer client on the line determines whether there is a peer client that can directly perform IP communication in the peer client on the line. 根據申請專利範圍第1項所述的方法,其中,該IM用戶端依據該外掛程式下載請求向該對端用戶端請求外掛程式,具體包括:該IM用戶端向一個對端用戶端發起建立連接請求;當連接建立成功時,則向該對端用戶端發送下載外掛程式請求,當連接建立失敗時,則迴圈向其他對端用戶端發起建立連接請求。According to the method of claim 1, wherein the IM client requests the plug-in to the peer user according to the plug-in download request, and the method includes: the IM client initiates a connection to a peer user. If the connection is successfully established, the download plug-in request is sent to the peer end user. When the connection establishment fails, the loop initiates a connection establishment request to the other peer end users. 根據申請專利範圍第1項所述的方法,其中,該外掛程式下載請求包括外掛程式名稱和版本資訊。The method of claim 1, wherein the plugin download request includes a plugin name and version information. 根據申請專利範圍第4項所述的方法,其中,該IM用戶端接收用戶發送的外掛程式下載請求之後,還包括:IM用戶端檢測本地保存的外掛程式標識資訊中,是否包括該外掛程式名稱和版本資訊;如果不包括,則執行依據該外掛程式名稱和版本資訊向該對端用戶端請求外掛程式的步驟。According to the method of claim 4, after the IM client receives the plug-in download request sent by the user, the method further includes: the IM client detecting whether the plug-in name is included in the locally stored plug-in identifier information. And version information; if not included, the step of requesting the plugin from the peer client according to the plugin name and version information. 根據申請專利範圍第4項所述的方法,其中,該IM用戶端接收用戶發送的外掛程式下載請求之後,還包括:IM用戶端向IM伺服器發送該外掛程式名稱和版本資訊;IM用戶端接收該IM伺服器根據該外掛程式名稱和版本資訊返回的外掛程式簽名資訊;則該IM用戶端依據該外掛程式名稱和版本資訊向該對端用戶端請求外掛程式,具體包括:該IM用戶端向該對端用戶端發送該外掛程式名稱和版本資訊,以及外掛程式簽名資訊;相應的,該對端用戶端向該IM用戶端傳輸該外掛程式,具體包括:該對端用戶端檢測接收到的外掛程式簽名資訊和本地保存的外掛程式簽名資訊是否一致,如果是,則向該IM用戶端傳輸該外掛程式。According to the method of claim 4, after the IM client receives the plug-in download request sent by the user, the IM client sends the plug-in name and version information to the IM server; the IM client Receiving the plugin signature information returned by the IM server according to the plugin name and the version information; the IM client requests the plugin from the peer client according to the plugin name and the version information, including: the IM client Sending the plugin name and version information to the peer end user, and the plugin signature information; correspondingly, the peer end user transmits the plugin to the IM client, specifically: the peer end user detects and receives Whether the plugin signature information is consistent with the locally saved plugin signature information, and if so, the plugin is transmitted to the IM client. 根據申請專利範圍第1項所述的方法,其中,該對端用戶端向該IM用戶端傳輸該外掛程式之後,還包括:該IM用戶端在本地安裝該外掛程式,並將該外掛程式對應的外掛程式名稱和版本資訊進行保存。According to the method of claim 1, wherein after the peer user transmits the plugin to the IM client, the method further includes: the IM client locally installing the plugin, and corresponding to the plugin The plugin name and version information are saved. 根據申請專利範圍第1項所述的方法,其中,該IM用戶端接收用戶發送的外掛程式下載請求,具體通過以下任意一種方式或者任意組合:該IM用戶端接收用戶在點擊安裝外掛程式的統一資源定位符URL鏈結或者對話方塊時,向IM用戶端發送的請求;該IM用戶端接收用戶在點擊包括安裝外掛程式指示的浮出推廣區域時,向IM用戶端發送的請求;該IM用戶端接收用戶在點擊包括安裝外掛程式指示的外掛程式推廣入口時,向IM用戶端發送的請求;該IM用戶端接收用戶在接受當前系統預設的安裝外掛程式的用戶協議時,向IM用戶端發送的請求。According to the method of claim 1, wherein the IM client receives the plug-in download request sent by the user, in any one of the following ways or any combination: the IM client receives the unifiedness of the user clicking the install plug-in a request sent to an IM client when the resource locator is a URL link or a dialog box; the IM client receives a request sent by the user to the IM client when clicking the floating promotion area including the installation plugin instruction; the IM user Receiving a request sent by the user to the IM client when clicking the plug-in promotion portal including the plug-in indication; the IM client receiving the user agreement to accept the current system preset installation plug-in to the IM client The request sent. 根據申請專利範圍第1或2項所述的方法,其中,當檢測到能夠直接存取的對端用戶端為多個時,根據對端用戶端的IP位址選擇和該IM用戶端屬於同一接入運營商的對端用戶端進行下載,和/或,同時向多個對端用戶端發起建立連接請求,並選擇建立連接最快的對端用戶端進行下載。According to the method of claim 1 or 2, wherein when the number of peer users that can directly access is detected, the IP address selection of the peer client is the same as the IM client. The peer end user of the operator is downloaded, and/or, at the same time, initiates a connection establishment request to the plurality of peer end users, and selects the peer end user that establishes the fastest connection to download. 一種外掛程式下載的系統,其特徵在於,該系統包括:IM用戶端,包括接收模組、請求外掛程式模組和下載模組;其中,該接收模組用於接收用戶發送的外掛程式下載請求;該請求外掛程式模組用於當檢測到能夠直接存取的對端用戶端時,在一定預置時間內,依據該外掛程式下載請求向該對端用戶端請求外掛程式;該下載模組用於當超出該預置時間時,直接從下載伺服器下載該外掛程式。A system for downloading a plug-in program, the system comprising: an IM client, comprising a receiving module, a requesting plug-in module, and a downloading module; wherein the receiving module is configured to receive a plug-in download request sent by a user The requesting plug-in module is configured to request a plug-in from the peer-end client according to the plug-in download request within a certain preset time when detecting the peer-end client that can directly access the plug-in terminal; the downloading module Used to download the plugin directly from the download server when the preset time is exceeded. 根據申請專利範圍第9項所述的系統,其中,該請求外掛程式模組,具體包括:檢測子模組,用於檢測是否存在當前線上的對端用戶端;判斷子模組,用於當檢測子模組的結果為是時,根據儲存的該線上的對端用戶端的IP位址資訊,判斷該線上的對端用戶端中是否存在能夠進行IP通訊的對端用戶端;及請求外掛程式子模組,用於當該判斷子模組的結果為是時,依據該外掛程式標識資訊向該對端用戶端請求外掛程式。The system of claim 9, wherein the requesting plug-in module comprises: a detecting sub-module for detecting whether there is a peer end user on the current line; and determining a sub-module for When the result of detecting the sub-module is YES, according to the stored IP address information of the opposite end user on the line, it is determined whether there is a peer end user capable of IP communication in the opposite end user on the line; and requesting the plug-in program The sub-module is configured to request the plug-in from the peer user according to the plug-in identification information when the result of the judging sub-module is YES. 根據申請專利範圍第11項所述的系統,其中,該請求外掛程式子模組,具體包括:請求連接子模組,用於當該判斷子模組的結果為是時,向一個能夠直接存取的對端用戶端發起建立連接請求;請求子模組,用於當連接建立成功時,向該一個對端用戶端發送下載外掛程式請求;及迴圈請求子模組,用於當連接建立失敗時,迴圈向其他對端用戶端發起建立連接請求。According to the system of claim 11, wherein the requesting plug-in sub-module specifically includes: requesting a connection sub-module, wherein when the result of the judging sub-module is YES, one can directly save The peer end user initiates a connection establishment request; the request submodule is configured to send a download plugin request to the peer end client when the connection establishment is successful; and the loop request submodule is used to establish the connection In case of failure, the loop initiates a connection establishment request to other peer clients. 根據申請專利範圍第10項所述的系統,其中,該外掛程式下載請求包括外掛程式名稱和版本資訊,則該IM用戶端還包括:檢測模組,用於IM用戶端檢測本地保存的外掛程式標識資訊中,是否包括該外掛程式名稱和版本資訊。According to the system of claim 10, wherein the plug-in download request includes a plug-in name and version information, the IM client further includes: a detecting module, configured for the IM client to detect the locally saved plug-in Whether the plugin name and version information are included in the identification information. 根據申請專利範圍第13項所述的系統,其中,該IM用戶端還包括:發送模組,用於向IM伺服器發送該外掛程式名稱和版本資訊;第二接收模組,用於接收該IM伺服器根據該外掛程式名稱和版本資訊返回的外掛程式簽名資訊;則該請求外掛程式模組,具體用於當檢測到能夠直接存取的對端用戶端時,向該對端用戶端發送該外掛程式名稱和版本資訊,以及外掛程式簽名資訊;則該對端用戶端,具體用於檢測接收到的外掛程式簽名資訊和本地保存的外掛程式簽名資訊是否一致,如果是,則向該IM用戶端傳輸該外掛程式。The system of claim 13, wherein the IM client further comprises: a sending module, configured to send the plugin name and version information to the IM server; and a second receiving module, configured to receive the The external server signature information returned by the IM server according to the plugin name and the version information; the request plugin module is specifically configured to send to the peer user terminal when detecting the peer user terminal that can directly access The plugin name and version information, and the plugin signature information; the peer client is specifically configured to detect whether the received plugin signature information and the locally saved plugin signature information are consistent, and if so, to the IM The client transmits the plugin. 根據申請專利範圍第10項所述的系統,其中,該IM用戶端還包括:安裝保存模組,用於在本地安裝該外掛程式,並將該外掛程式對應的外掛程式名稱和版本資訊進行保存。The system of claim 10, wherein the IM client further comprises: an installation save module, configured to locally install the plugin, and save the plugin name and version information corresponding to the plugin .
TW099106918A 2010-03-10 2010-03-10 Plug-in download method and system TWI483187B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW099106918A TWI483187B (en) 2010-03-10 2010-03-10 Plug-in download method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099106918A TWI483187B (en) 2010-03-10 2010-03-10 Plug-in download method and system

Publications (2)

Publication Number Publication Date
TW201131476A TW201131476A (en) 2011-09-16
TWI483187B true TWI483187B (en) 2015-05-01

Family

ID=50180391

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099106918A TWI483187B (en) 2010-03-10 2010-03-10 Plug-in download method and system

Country Status (1)

Country Link
TW (1) TWI483187B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192831A (en) * 2022-12-11 2023-05-30 南京机敏软件科技有限公司 A fast distribution method of IDV image based on tower download

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044418A1 (en) * 2003-07-25 2005-02-24 Gary Miliefsky Proactive network security system to protect against hackers
US20070016796A1 (en) * 2002-08-12 2007-01-18 Singhal Tara C Systems and methods for remote user authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016796A1 (en) * 2002-08-12 2007-01-18 Singhal Tara C Systems and methods for remote user authentication
US20050044418A1 (en) * 2003-07-25 2005-02-24 Gary Miliefsky Proactive network security system to protect against hackers

Also Published As

Publication number Publication date
TW201131476A (en) 2011-09-16

Similar Documents

Publication Publication Date Title
US11750486B2 (en) Device state management
JP5342696B2 (en) Download plug-ins in instant messaging client
US11122023B2 (en) Device communication environment
US10547710B2 (en) Device gateway
CN102932352B (en) The method of communicating with the client and the server
US10958648B2 (en) Device communication environment
US7788522B1 (en) Autonomous cluster organization, collision detection, and resolutions
US10110538B2 (en) Method and apparatus for message transmission
US9973593B2 (en) Device gateway
CN110493321B (en) Resource acquisition method, edge scheduling system and server
CN105229972A (en) Enhanced Dynamic Host Configuration Protocol Method
US11916970B2 (en) Security information exchange between a client and a server
CN104348661B (en) The upload of network failure data, method of reseptance and equipment and recording method and system
WO2017004251A1 (en) Method and system for function and service discovery
CN104168294A (en) Instant communication method, system and device across users on open platforms
EP2823622A1 (en) A method and a control node in an overlay network
TWI483187B (en) Plug-in download method and system
CN104243533B (en) The method that data sharing and data syn-chronization are carried out in LAN
CN113285920B (en) Service access method, device, equipment and storage medium
WO2017005118A1 (en) Method, device, terminal and server for maintaining communication connection
CN115174341B (en) Method, device and equipment for upgrading equipment in intelligent community
US9385878B1 (en) Communication with network devices
HK1137592A (en) Method and system for downloading plug-in component
CN120848907A (en) Terminal patch processing method, device, equipment, medium and product
CN114356474A (en) Data transmission method, first virtual machine, virtual desktop management server and system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees