專利名稱:一種查詢即時(shí)通訊客戶端能力信息的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技木,特別涉及ー種查詢即時(shí)通訊(IM,InstantMessaging)客戶端能力信息的方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,通過點(diǎn)對(duì)點(diǎn)的技術(shù)來實(shí)現(xiàn)互聯(lián)網(wǎng)上的即時(shí)溝通的即時(shí)通訊工具應(yīng)用越來越普遍,IM已經(jīng)被大多數(shù)的用戶所接受并成為用戶日常生活以及工作中必不可少的一部分。隨著用戶越來越多的利用安裝有IM工具軟件的IM客戶端進(jìn)行日常的交流與溝通,用戶對(duì)IM客戶端的易用性以及個(gè)性化服務(wù)等方面提出了越來越高的要求。由于IM客戶端中安裝的IM工具軟件類型多祥,各自能兼容不同的應(yīng)用功能,但即使是對(duì)于同一應(yīng)用功能,不同的IM客戶端之間,由于安裝的IM軟件不同,或者,安裝的IM軟件版本不同,或者,同一 IM軟件選擇安裝的內(nèi)容不同,均可能導(dǎo)致對(duì)該應(yīng)用功能的不兼容。例如,在發(fā)送方(IM客戶端)具有交互功能的IM軟件中,向接收方(對(duì)方IM客戶端)發(fā)送ー個(gè)魔法表情,如果接收方不支持該應(yīng)用功能,將調(diào)用通用邏輯,通知發(fā)送方自身不支持該應(yīng)用功能。因而,在IM客戶端相互交互中,為了有效節(jié)約不兼容應(yīng)用功能導(dǎo)致的資源開銷,在IM客戶端相互交互之前,發(fā)送方需要首先查詢獲取接收方的能力信息,根據(jù)接收方的能力信息確定接收方不支持待交互的應(yīng)用功能,則取消應(yīng)用功能交互,以有效節(jié)約資源,降低用戶成本。當(dāng)然,對(duì)于其他非頂客戶端,也可以通過相互查詢能力信息的方法獲取對(duì)方相關(guān)能力信息。圖I為現(xiàn)有查詢即時(shí)通訊客戶端能力信息的方法流程示意圖。參見圖1,該流程包括步驟101,發(fā)送方向接收方發(fā)送待交互的應(yīng)用功能所屬軟件版本信息獲取請(qǐng)求;本步驟中,一般地,如果通過IM軟件安裝某一應(yīng)用功能,則假定該應(yīng)用功能在該IM軟件后續(xù)改進(jìn)的軟件中一直得到支持,也就是說,安裝該應(yīng)用功能的當(dāng)前IM軟件版本的所有后續(xù)版本都能夠支持該應(yīng)用功能。實(shí)際應(yīng)用中,發(fā)送方如果需要與接收方進(jìn)行多個(gè)應(yīng)用功能的交互,則可以向接收方發(fā)送版本信息獲取請(qǐng)求,攜帯所有待交互的應(yīng)用功能信息。步驟102,接收方接收應(yīng)用功能所屬軟件版本信息獲取請(qǐng)求,將應(yīng)用功能所屬的軟件版本信息向發(fā)送發(fā)返回;本步驟中,接收方根據(jù)接收的獲取請(qǐng)求中的應(yīng)用功能信息,查詢獲取自身該應(yīng)用功能對(duì)應(yīng)的軟件版本信息。步驟103,發(fā)送方判斷接收的應(yīng)用功能所屬的軟件版本信息中包含的版本號(hào)是否不小于自身存儲(chǔ)的該應(yīng)用功能所屬的軟件版本號(hào),如果是,執(zhí)行步驟104,如果小于,執(zhí)行步驟 105 ;本步驟中,通過獲取接收方安裝該應(yīng)用功能的軟件版本信息,與自身安裝該應(yīng)用功能的軟件版本信息進(jìn)行對(duì)比,如果獲取的軟件版本號(hào)不小于自身存儲(chǔ)的該應(yīng)用功能的軟件版本號(hào),則表明接收方能夠兼容該應(yīng)用功能。例如,如果發(fā)送方安裝了軟件版本V3中增加的魔法表情功能,如果接收方返回的該魔法表情功能對(duì)應(yīng)的軟件版本號(hào)為V3. 1,則表明接收方能夠兼容該魔法表情功能;而如果收方返回的該魔法表情功能對(duì)應(yīng)的軟件版本號(hào)為V2或沒有軟件版本號(hào)信息,則表明接收方不支持該魔法表情功能。步驟104,與接收方進(jìn)行應(yīng)用功能交互;步驟105,取消與接收方的應(yīng)用功能交互。由上述可見,現(xiàn)有的查詢即時(shí)通訊客戶端能力信息的方法,一方面,該方法基于在后的軟件能夠兼容在前的軟件安裝的應(yīng)用功能,使得應(yīng)用功能在軟件中只能増加,不能刪減,造成在后軟件容量越來越大,占用較多的存儲(chǔ)空間,而如果在后版本的軟件將在前版本的應(yīng)用功能下架,則發(fā)送方會(huì)發(fā)生誤判,導(dǎo)致資源浪費(fèi),増加用戶成本,查詢可靠性較低;而且,同一版本的軟件,由于用戶選擇安裝的內(nèi)容不同,也可能造成不同頂客戶端的同一版本的軟件對(duì)同一應(yīng)用功能的不兼容;進(jìn)ー步地,軟件具有某一應(yīng)用功能的能力信息,并不表示該能力當(dāng)前可用,因?yàn)橛行┠芰π枰蕾囂囟ㄆ脚_(tái)服務(wù),例如,如果該能力對(duì)應(yīng)的應(yīng)用功 能需要即時(shí)通訊客戶端平臺(tái)的服務(wù),而該平臺(tái)沒有提供該服務(wù),則該能力在即時(shí)通訊客戶端中當(dāng)前處于不可用狀態(tài),因而,雖然接收方該應(yīng)用功能對(duì)應(yīng)的軟件版本號(hào)大于發(fā)送方對(duì)應(yīng)應(yīng)用功能的版本號(hào),也會(huì)導(dǎo)致應(yīng)用功能不兼容;另一方面,隨著基于平臺(tái)加插件模型的客戶端的軟件升級(jí)技術(shù)的出現(xiàn),即通過只升級(jí)插件的方式實(shí)現(xiàn)輕量級(jí)的軟件升級(jí)的插件升級(jí)等技術(shù)的應(yīng)用,應(yīng)用功能會(huì)與頂客戶端軟件版本脫鉤,在該情況下,現(xiàn)有查詢即時(shí)通訊客戶端能力信息的方法顯然不能適用。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提出一種查詢即時(shí)通訊客戶端能力信息的方法,擴(kuò)展查詢適用范圍、提高查詢可靠性。本發(fā)明的另一目的在于提出一種查詢即時(shí)通訊客戶端能力信息的裝置,擴(kuò)展查詢適用范圍、提高查詢可靠性。為達(dá)到上述目的,本發(fā)明提供了一種查詢即時(shí)通訊客戶端能力信息的方法,該方法包括查詢IM客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ);根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果;向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果以便該頂客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。所述查詢IM客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息具體包括預(yù)先在每ー插件中設(shè)置用于描述對(duì)應(yīng)插件具備的能力信息的初始能力配置文件;在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ)為安裝能力配置文件。進(jìn)ー步包括遍歷各個(gè)插件的安裝能力配置文件,形成能力列表。
所述初始能力配置文件中包含以能力標(biāo)識(shí)進(jìn)行區(qū)別的多種能力信息。所述安裝能力配置文件中包含區(qū)分能力信息是否需要依賴特定平臺(tái)服務(wù)的能力狀態(tài)標(biāo)識(shí),并存儲(chǔ)能力狀態(tài)標(biāo)識(shí)為不可用時(shí)該能力對(duì)應(yīng)的能力提供者信息。所述初始以及安裝能力配置文件包括可擴(kuò)展標(biāo)記語言格式的文件、文本格式的文件以及記事本格式的文件。通過客戶端對(duì)客戶端的自定義網(wǎng)絡(luò)協(xié)議發(fā)起所述能力查詢請(qǐng)求。所述根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果具體包括 根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢能力列表如果能力列表中有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為可用,則查詢結(jié)果中包含可用イ目息;如果能力列表中有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為不可用,判斷該IM客戶端是否具備該能力,根據(jù)判斷結(jié)果生成查詢結(jié)果;如果能力列表中沒有相同的能力標(biāo)識(shí),則查詢結(jié)果中包含未查詢到相關(guān)能力信
o所述判斷該頂客戶端是否具備該能力,根據(jù)判斷結(jié)果生成查詢結(jié)果具體包括根據(jù)能力狀態(tài)標(biāo)識(shí)對(duì)應(yīng)的能力提供者信息,查詢該能力提供者是否提供了該能力需要的服務(wù),如果是,判斷該IM客戶端用戶是否具備享有該服務(wù)的權(quán)限,如果是,則查詢結(jié)果中包含可用信息;如果該能力提供者沒有提供該能力需要的服務(wù)、或,該即時(shí)通訊客戶端用戶不具備享有該服務(wù)的權(quán)限,則查詢結(jié)果中包含不可用信息。所述獲取查詢結(jié)果之后,向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果之前,進(jìn)ー步包括設(shè)置能力發(fā)送策略,判斷當(dāng)前狀態(tài)是否滿足能力發(fā)送策略,如果是,執(zhí)行所述向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果的步驟,否則,結(jié)束該流程。所述能力發(fā)送策略包括如果用戶向發(fā)送能力查詢請(qǐng)求對(duì)應(yīng)的頂客戶端設(shè)置了隱身,則不發(fā)送查詢結(jié)果,如果用戶當(dāng)前在線且不隱身,則發(fā)送查詢結(jié)果。ー種查詢即時(shí)通訊M客戶端能力信息的裝置,該裝置包括平臺(tái)模塊以及插件模塊,其中, 平臺(tái)模塊,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果以便該IM客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作;插件模塊,查詢即時(shí)通訊客戶端中安裝的插件,獲取插件的能力信息并存儲(chǔ)。所述平臺(tái)模塊包括能力中心単元以及圖形用戶接ロ単元,其中,能力中心單元接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,通過圖形用戶接ロ単元向用戶展示,并向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。所述平臺(tái)模塊進(jìn)一歩包括能力發(fā)送策略単元,用于存儲(chǔ)能力發(fā)送策略,將用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略輸出至能力中心単元,以便能力中心単元根據(jù)用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略處理查詢結(jié)果。所述平臺(tái)模塊進(jìn)一歩包括能力列表存儲(chǔ)單元,用于在IM客戶端初始化時(shí),遍歷插件模塊存儲(chǔ)的插件能力信息并存儲(chǔ)。相應(yīng)地,能力中心單元,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢能力列表存儲(chǔ)單元,獲取查詢結(jié)果。所述插件模塊包括安裝能力配置文件單元以及能力提供者単元,其中,安裝能力配置文件単元,用于在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件,獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ),接收能力查詢請(qǐng)求,如果能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為不可用,向能力提供者單元輸出能力標(biāo)識(shí);接收能力提供者単元返回的查詢結(jié)果,向能力中心單元發(fā)送;如果能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為可用,向能力中心單元發(fā)送包含可用信息的查詢結(jié)果;能力提供者単元,用于存儲(chǔ)即時(shí)通訊客戶端提供的能力所需的服務(wù)信息以及即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限信息,接收能力標(biāo)識(shí),如果存儲(chǔ)有該能力所需的服務(wù)信息、且該即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限,輸出包含可用信息的查詢結(jié)果;否則,輸出包含不可用信息的查詢結(jié)果。由上述的技術(shù)方案可見,本發(fā)明提供的一種查詢即時(shí)通訊客戶端能力信息的方法及裝置,通過查詢頂客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ);根據(jù)接收的能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果;向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果以便該頂客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。這樣,通過對(duì)IM客戶端中安裝的插件/軟件具備的能力信息進(jìn)行統(tǒng)一的管理,可以避免通過版本信息查詢能力導(dǎo)致的誤判以及資源浪費(fèi),有效提高了查詢可靠性;同時(shí),通過安裝軟件具備的能力信息進(jìn)行查詢,適用于應(yīng)用功能與IM客戶端軟件版本脫鉤的情形,擴(kuò)展了查詢適用范圍。
圖I為現(xiàn)有查詢即時(shí)通訊客戶端能力信息的方法流程示意圖。圖2為本發(fā)明實(shí)施例查詢即時(shí)通訊客戶端能力信息的方法流程示意圖。圖3為本發(fā)明實(shí)施例查詢即時(shí)通訊客戶端能力信息的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)ー步地詳細(xì)描述?,F(xiàn)有技術(shù)中,基于在后軟件能夠兼容在前軟件安裝的應(yīng)用功能前提的查詢即時(shí)通訊客戶端能力信息的方法,在后軟件如果為了降低自身安裝容量而將在前軟件中的應(yīng)用功能下架,將降低查詢的可靠性;進(jìn)ー步地,該方法不能適用于應(yīng)用功能與頂客戶端軟件版本脫鉤的情形。本發(fā)明實(shí)施例中,通過獲取安裝的插件(軟件)具備的能力信息,在頂客戶端中設(shè)置統(tǒng)一管理頂客戶端能力信息的客戶端能力中心,對(duì)客戶端具有的能力信息進(jìn)行統(tǒng)ー的管理,從而可以動(dòng)態(tài)靈活地查詢客戶端是否具備哪些能力,以提高客戶端間交互應(yīng)用功能的開發(fā)效率。圖2為本發(fā)明實(shí)施例查詢即時(shí)通訊客戶端能力信息的方法流程示意圖。參見圖2,該流程包括步驟201,查詢即時(shí)通訊客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ);本步驟中,插件(軟件)提供各種應(yīng)用業(yè)務(wù)邏輯,插件(軟件)具有的應(yīng)用功能能カ通過應(yīng)用業(yè)務(wù)邏輯體現(xiàn)。以下以插件為例進(jìn)行說明。本發(fā)明實(shí)施例中,在每ー插件中設(shè)置初始能力配置文件,用于描述對(duì)應(yīng)插件具備 的能力信息。
實(shí)際應(yīng)用中,ー個(gè)插件可以具有多種能力,則在初始能力配置文件中,每種能力信息以能力標(biāo)識(shí)進(jìn)行區(qū)別,該能力標(biāo)識(shí)具有唯一性。如前所述,有些能力需要依賴特定平臺(tái)服務(wù),在該情況下,設(shè)置能力信息的狀態(tài)標(biāo)識(shí)(ID, Identification)以區(qū)分該能力信息是否需要依賴特定平臺(tái)服務(wù)。如果能力信息的狀態(tài)ID為可用,表示該能力信息不依賴于特定平臺(tái)服務(wù),如果能力信息的狀態(tài)ID為不可用,表示該能力信息需依賴于特定平臺(tái)服務(wù),對(duì)于能力狀態(tài)ID為不可用的情形,存儲(chǔ)該能力對(duì)應(yīng)的能力提供者信息。實(shí)際應(yīng)用中,對(duì)于同一插件,在安裝過程中,由于用戶選擇的不同,使得安裝后的插件對(duì)同一應(yīng)用功能具有不同的兼容模式,因而,本發(fā)明實(shí)施例中,在頂客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ)為安裝能力配置文件。在后續(xù)插件的更新或升級(jí)中,只需要根據(jù)更新的能力信息更新安裝能力配置文件中相應(yīng)內(nèi)容即可,可以動(dòng)態(tài)靈活地存儲(chǔ)頂客戶端中安裝的插件具有的能力信息。能力配置文件包括可擴(kuò)展標(biāo)記語言(XML,Extensible Markup Language)格式的文件、文本格式的文件以及記事本格式的文件等。每一安裝的插件可以對(duì)應(yīng)一個(gè)安裝能力配置文件。較佳地,在即時(shí)通訊客戶端初始化時(shí),遍歷各個(gè)插件的安裝能力配置文件,獲取插件的能力信息,形成能力列表并存儲(chǔ)。在能力列表中,各插件的能力信息以插件ID進(jìn)行區(qū)另U,當(dāng)然,在能力列表中,各插件的能力信息也可以分別以能力ID進(jìn)行區(qū)別。這樣,通過在插件中設(shè)置初始能力配置文件,用以描述插件具備的能力信息,在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ)為安裝能力配置文件,并在即時(shí)通訊客戶端初始化時(shí),遍歷獲取各插件對(duì)應(yīng)的安裝能力配置文件中包含的能力信息,形成能力列表,避免了在后軟件將在前軟件中的應(yīng)用功能下架導(dǎo)致的應(yīng)用功能查詢發(fā)生錯(cuò)誤的情形;同時(shí),在應(yīng)用功能與即時(shí)通訊客戶端軟件版本脫鉤后,通過安裝能力配置文件,可以獲取該安裝的插件支持的應(yīng)用功能,從而可以進(jìn)行能力信息查詢。步驟202,根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果; 本步驟中,如果即時(shí)通訊客戶端A需要查詢即時(shí)通訊客戶端B是否具備某一能力,可以通過客戶端對(duì)客戶端的自定義網(wǎng)絡(luò)協(xié)議向即時(shí)通訊客戶端B發(fā)起能力查詢請(qǐng)求,攜帯待查詢的能力標(biāo)識(shí)。如果需要查詢多項(xiàng)能力,則可以在能力查詢請(qǐng)求中攜帶該待查詢的多項(xiàng)能力對(duì)應(yīng)的標(biāo)識(shí)。也可以在能力查詢請(qǐng)求中,不攜帶有任何能力標(biāo)識(shí),則默認(rèn)為查詢該即時(shí)通訊客戶端A的所有能力信息。如前所述,安裝配置文件中描述的插件具備的能力信息,并不表示該能力當(dāng)前可用,舉例來說,對(duì)于QQShow,如果即時(shí)通訊客戶端平臺(tái)沒有播放flash的功能,則該即時(shí)通訊客戶端中,應(yīng)用功能QQShow當(dāng)前不可用。本發(fā)明實(shí)施例中,如果在即時(shí)通訊客戶端初始化時(shí),已遍歷各個(gè)插件的安裝能力配置文件形成能力列表,則根據(jù)能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢能力列表;如果未形成能力列表,則遍歷各個(gè)插件的安裝能力配置文件如果有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為可用,則表明該IM客戶端支持該應(yīng)用功能能力;
·
如果有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為不可用,需要進(jìn)ー步判斷該即時(shí)通訊客戶端是否具備該能力,具體步驟包括根據(jù)能力狀態(tài)標(biāo)識(shí)對(duì)應(yīng)的能力提供者信息,查詢該能力提供者是否提供了該能力需要的服務(wù),例如,查詢頂客戶端平臺(tái)是否能播放flash,如果是,判斷該即時(shí)通訊客戶端用戶是否具備享有該服務(wù)的權(quán)限,如果是,表示該即時(shí)通訊客戶端具備該能力,如果該能力提供者沒有提供該能力需要的服務(wù)、或,該即時(shí)通訊客戶端用戶不具備享有該服務(wù)的權(quán)限,則表明該即時(shí)通訊客戶端不具備該能力。步驟203,向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。本步驟中,如果即時(shí)通訊客戶端B存儲(chǔ)的能力列表中包含能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的能力,則進(jìn)一歩獲取該能力的能力狀態(tài)標(biāo)識(shí),如果該能力狀態(tài)標(biāo)識(shí)為可用,則向即時(shí)通訊客戶端A返回包含該能力可用信息的查詢結(jié)果;如果該能力狀態(tài)標(biāo)識(shí)為不可用,則進(jìn)一歩判斷該即時(shí)通訊客戶端是否具備該能力,如果具備,向即時(shí)通訊客戶端A返回包含該能力可用信息的查詢結(jié)果;如果即時(shí)通訊客戶端B存儲(chǔ)的能力列表中不包含能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的能力、或,在該能力狀態(tài)標(biāo)識(shí)為不可用時(shí),判斷該即時(shí)通訊客戶端不具備該能力,向即時(shí)通訊客戶端A返回包含該能力不可用信息的查詢結(jié)果。可以通過客戶端對(duì)客戶端的自定義網(wǎng)絡(luò)協(xié)議返回查詢結(jié)果。實(shí)際應(yīng)用中,對(duì)于即時(shí)通訊客戶端B來說,當(dāng)接收到即時(shí)通訊客戶端A發(fā)送的能力查詢請(qǐng)求前,如果一直處于隱身狀態(tài),而在接收到即時(shí)通訊客戶端A發(fā)送的能力查詢請(qǐng)求后,也不希望與該即時(shí)通訊客戶端A進(jìn)行應(yīng)用功能交互,如果自動(dòng)將查詢結(jié)果向即時(shí)通訊客戶端A發(fā)送,則即時(shí)通訊客戶端A可以知道該即時(shí)通訊客戶端B處于在線狀態(tài),則可以通過發(fā)送應(yīng)用功能交互信息與即時(shí)通訊客戶端B進(jìn)行聯(lián)系,使得即時(shí)通訊客戶端B不得不被動(dòng)應(yīng)答,為了避免此類尷尬,進(jìn)一歩地,在向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果之前,包括設(shè)置能力發(fā)送策略,判斷當(dāng)前狀態(tài)是否滿足能力發(fā)送策略,如果是,執(zhí)行步驟203,否則,結(jié)束該流程。能力發(fā)送策略可以是如果設(shè)置了隱身,則不發(fā)送查詢結(jié)果,而如果用戶當(dāng)前在線且不隱身,則可以發(fā)送查詢結(jié)果。這樣,即時(shí)通訊客戶端B在得到查詢結(jié)果后,判斷用戶當(dāng)前所處的狀態(tài),如果用戶對(duì)該發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端設(shè)置了隱身,則不發(fā)送查詢結(jié)果或返回用戶未在線信息,以避免被動(dòng)應(yīng)答的情形。由上述可見,本發(fā)明實(shí)施例的查詢即時(shí)通訊客戶端能力信息的方法,查詢即時(shí)通訊客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ);根據(jù)接收的能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果;向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。這樣,通過對(duì)IM客戶端安裝的插件/軟件具備的能力信息進(jìn)行統(tǒng)一的管理,避免了通過版本信息查詢能力導(dǎo)致的在后版本的軟件將在前版本的應(yīng)用功能下架,使得發(fā)送方發(fā)生誤判造成的資源浪費(fèi),用戶成本増加,查詢可靠性較低的技術(shù)問題,提高了查詢可靠性;而且,也避免了通過版本信息查詢能力導(dǎo)致的由于用戶選擇安裝的內(nèi)容不同,造成不同IM客戶端的同一版本的軟件對(duì)同一應(yīng)用功能不兼容的現(xiàn)象;進(jìn)ー步地,可以解決有些能力需要依賴特定平臺(tái)服務(wù)來確定是否可用的缺陷;此外,通過安裝軟件具備的能力信息進(jìn)行查詢,適用于應(yīng)用功能與頂客戶端軟件版本脫鉤的情形,擴(kuò)展了查詢適用范圍;還可以動(dòng)態(tài)靈活地查詢IM客戶端是否具備哪些能力,滿足了交互功能中問詢對(duì)方能力的通用需求,極大地提高了 此類需求的用戶體驗(yàn)。圖3為本發(fā)明實(shí)施例查詢即時(shí)通訊客戶端能力信息的裝置結(jié)構(gòu)示意圖。參見圖3,該裝置包括平臺(tái)(Platform)模塊以及一個(gè)或多個(gè)插件(Plugin)模塊,其中,平臺(tái)模塊,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作;插件模塊,查詢即時(shí)通訊客戶端中安裝的插件,獲取插件的能力信息并存儲(chǔ)。本發(fā)明實(shí)施例中,平臺(tái)模塊提供通用的、基礎(chǔ)的邏輯,插件提供各種業(yè)務(wù)邏輯,能力通過業(yè)務(wù)邏輯體現(xiàn)。查詢結(jié)果中可以包括該能力可用信息,表示該IM客戶端具備該能力,可以進(jìn)行應(yīng)用功能交互、該能力不可用信息,表示該IM客戶端雖然具備該能力,但不能進(jìn)行應(yīng)用功能交互、以及未查詢到相關(guān)能力信息,表示該頂客戶端不具備該能力。平臺(tái)模塊包括能力中心(Ability Center)單元以及圖形用戶接ロ(⑶I,Graphic User Interface)單兀,其中,能力中心單元,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,通過圖形用戶接ロ単元向用戶展示,井向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。 本發(fā)明實(shí)施例中,能力中心単元用于控制能力查詢邏輯。進(jìn)ー步包括能力發(fā)送策略単元,用于存儲(chǔ)能力發(fā)送策略,將用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略輸出至能力中心単元,以便能力中心単元根據(jù)用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略處理查詢結(jié)果。本發(fā)明實(shí)施例中,如果用戶當(dāng)前狀態(tài)為隱身,對(duì)應(yīng)的能力發(fā)送策略為不發(fā)送查詢結(jié)果或返回用戶未在線信息,則能力中心単元根據(jù)該能力發(fā)送策略,不發(fā)送查詢結(jié)果或返回用戶未在線信息;如果用戶當(dāng)前狀態(tài)為在線且未隱身,對(duì)應(yīng)的能力發(fā)送策略為發(fā)送查詢結(jié)果,則能力中心単元根據(jù)該能力發(fā)送策略發(fā)送查詢結(jié)果。進(jìn)ー步包括能力列表存儲(chǔ)單元,用于在IM客戶端初始化時(shí),遍歷插件模塊存儲(chǔ)的插件能力信息并存儲(chǔ)。相應(yīng)地,能力中心單元,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢能力列表存儲(chǔ)單元,獲取查詢結(jié)果。插件模塊包括安裝能力配置文件單元以及能力提供者単元,其中,安裝能力配置文件単元,用于在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始 能力配置文件,獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ),接收能力查詢請(qǐng)求,如果能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為不可用,向能力提供者單元輸出能力標(biāo)識(shí);接收能力提供者単元返回的查詢結(jié)果,向能力中心單元發(fā)送;如果能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為可用,向能力中心單元發(fā)送包含可用信息的查詢結(jié)果;本發(fā)明實(shí)施例中,安裝能力配置文件単元可以與插件一一對(duì)應(yīng),即ー個(gè)插件對(duì)應(yīng)于ー個(gè)安裝能力配置文件単元,能力配置文件用于描述對(duì)應(yīng)插件具備哪些能力,井指明能力對(duì)應(yīng)的能力提供者信息。如前所述,如果平臺(tái)模塊中未包含能力列表存儲(chǔ)單元,則能力中心單元將接收的能力查詢請(qǐng)求同時(shí)向各安裝能力配置文件單元發(fā)送,或,依序向各安裝能力配置文件単元發(fā)送,即向某一安裝能力配置文件單元發(fā)送能力查詢請(qǐng)求后,如果返回的查詢結(jié)果為未查詢到相關(guān)能力信息,則依序向下一安裝能力配置文件單元發(fā)送能力查詢請(qǐng)求。當(dāng)然,如前所述,實(shí)際應(yīng)用中,即時(shí)通訊客戶端在初始化的時(shí)候,能力列表存儲(chǔ)單元可以遍歷各個(gè)插件的安裝能力配置文件単元,生成或初始化能力列表,這樣,能力中心單元就可以直接從能力列表單元獲取能力查詢請(qǐng)求相關(guān)的信息。也就是說,在初始化時(shí),能力列表存儲(chǔ)單元遍歷各個(gè)插件的安裝能力配置文件単元,初始化能力列表,能力中心単元根據(jù)能力列表単元確定是否有插件支持該能力,如果沒有,則認(rèn)為即時(shí)通訊客戶端B沒有該能力;如果有且能力列表単元明確不需要向能力提供者単元求證(能力狀態(tài)標(biāo)識(shí)為可用),則認(rèn)為即時(shí)通訊客戶端B具有該能力;如果有且能力列表単元明確需要向能力提供者単元求證(能力狀態(tài)標(biāo)識(shí)為不可用),則調(diào)用對(duì)應(yīng)的能力提供者単元的IsAvailable方法,求證該能力是否可用。能力提供者単元,用于存儲(chǔ)即時(shí)通訊客戶端提供的能力所需的服務(wù)信息以及即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限信息,接收能力標(biāo)識(shí),如果存儲(chǔ)有該能力所需的服務(wù)信息、且該即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限,輸出包含可用信息的查詢結(jié)果;否則,輸出包含不可用信息的查詢結(jié)果。本發(fā)明實(shí)施例中,安裝配置文件或能力列表中描述了插件具備某項(xiàng)能力,并不代表該能力當(dāng)前可用,因而,該能力當(dāng)前是否可用由能力提供者單元來評(píng)判。如果是安裝能力配置文件單元發(fā)送能力標(biāo)識(shí),則向安裝能力配置文件單元發(fā)送包含可用信息或不可用信息的查詢結(jié)果;如果是能力列表存儲(chǔ)單元發(fā)送能力標(biāo)識(shí),則向能力列表存儲(chǔ)單元發(fā)送包含可用信息或不可用信息的查詢結(jié)果。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.ー種查詢即時(shí)通訊IM客戶端能力信息的方法,其特征在于,該方法包括 查詢IM客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ); 根據(jù)接收的能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果; 向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果以便該頂客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。
2.如權(quán)利要求I所述的方法,其特征在于,所述查詢M客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息具體包括 預(yù)先在每ー插件中設(shè)置用于描述對(duì)應(yīng)插件具備的能力信息的初始能力配置文件; 在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ)為安裝能力配置文件。
3.如權(quán)利要求I所述的方法,其特征在干,進(jìn)ー步包括 遍歷各個(gè)插件的安裝能力配置文件,形成能力列表。
4.如權(quán)利要求2或3所述的方法,其特征在于,所述初始能力配置文件中包含以能力標(biāo)識(shí)進(jìn)行區(qū)別的多種能力信息。
5.如權(quán)利要求4所述的方法,其特征在干,所述安裝能力配置文件中包含區(qū)分能力信息是否需要依賴特定平臺(tái)服務(wù)的能力狀態(tài)標(biāo)識(shí),并存儲(chǔ)能力狀態(tài)標(biāo)識(shí)為不可用時(shí)該能力對(duì)應(yīng)的能力提供者信息。
6.如權(quán)利要求4所述的方法,其特征在于,所述初始以及安裝能力配置文件包括可擴(kuò)展標(biāo)記語言格式的文件、文本格式的文件以及記事本格式的文件。
7.如權(quán)利要求4所述的方法,其特征在于,通過客戶端對(duì)客戶端的自定義網(wǎng)絡(luò)協(xié)議發(fā)起所述能力查詢請(qǐng)求。
8.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)接收的能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果具體包括 根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢能力列表 如果能力列表中有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為可用,則查詢結(jié)果中包含可用信息; 如果能力列表中有相同的能力標(biāo)識(shí)且能力狀態(tài)標(biāo)識(shí)為不可用,判斷該頂客戶端是否具備該能力,根據(jù)判斷結(jié)果生成查詢結(jié)果; 如果能力列表中沒有相同的能力標(biāo)識(shí),則查詢結(jié)果中包含未查詢到相關(guān)能力信息。
9.如權(quán)利要求8所述的方法,其特征在于,所述判斷該IM客戶端是否具備該能力,根據(jù)判斷結(jié)果生成查詢結(jié)果具體包括 根據(jù)能力狀態(tài)標(biāo)識(shí)對(duì)應(yīng)的能力提供者信息,查詢該能力提供者是否提供了該能力需要的服務(wù),如果是,判斷該IM客戶端用戶是否具備享有該服務(wù)的權(quán)限,如果是,則查詢結(jié)果中包含可用信息;如果該能力提供者沒有提供該能力需要的服務(wù)、或,該即時(shí)通訊客戶端用戶不具備享有該服務(wù)的權(quán)限,則查詢結(jié)果中包含不可用信息。
10.如權(quán)利要求9所述的方法,其特征在于,所述獲取查詢結(jié)果之后,向發(fā)送能力查詢請(qǐng)求的IM客戶端返回查詢結(jié)果之前,進(jìn)ー步包括 設(shè)置能力發(fā)送策略,判斷當(dāng)前狀態(tài)是否滿足能力發(fā)送策略,如果是,執(zhí)行所述向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果的步驟,否則,結(jié)束該流程。
11.如權(quán)利要求10所述的方法,其特征在于,所述能力發(fā)送策略包括如果用戶向發(fā)送能力查詢請(qǐng)求對(duì)應(yīng)的頂客戶端設(shè)置了隱身,則不發(fā)送查詢結(jié)果,如果用戶當(dāng)前在線且不隱身,則發(fā)送查詢結(jié)果。
12.—種查詢即時(shí)通訊IM客戶端能力信息的裝置,其特征在于,該裝置包括平臺(tái)模塊以及插件模塊,其中, 平臺(tái)模塊,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,向發(fā)送能力查詢請(qǐng)求的頂客戶端返回查詢結(jié)果以便該IM客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作; 插件模塊,查詢即時(shí)通訊客戶端中安裝的插件,獲取插件的能力信息并存儲(chǔ)。
13.如權(quán)利要求12所述的裝置,其特征在于,所述平臺(tái)模塊包括能力中心単元以及圖形用戶接ロ單元,其中, 能力中心單元接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢插件模塊存儲(chǔ)的插件能力信息,獲取查詢結(jié)果,通過圖形用戶接ロ単元向用戶展示,并向發(fā)送能力查詢請(qǐng)求的即時(shí)通訊客戶端返回查詢結(jié)果以便該即時(shí)通訊客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。
14.如權(quán)利要求13所述的裝置,其特征在于,所述平臺(tái)模塊進(jìn)一歩包括 能力發(fā)送策略単元,用于存儲(chǔ)能力發(fā)送策略,將用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略輸出至能力中心単元,以便能力中心単元根據(jù)用戶當(dāng)前狀態(tài)對(duì)應(yīng)的能力發(fā)送策略處理查詢結(jié)果。
15.如權(quán)利要求14所述的裝置,其特征在于,所述平臺(tái)模塊進(jìn)一歩包括 能力列表存儲(chǔ)單元,用于在IM客戶端初始化時(shí),遍歷插件模塊存儲(chǔ)的插件能力信息并存儲(chǔ)。相應(yīng)地, 能力中心單元,用于接收能力查詢請(qǐng)求,根據(jù)能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢能力列表存儲(chǔ)單元,獲取查詢結(jié)果。
16.如權(quán)利要求15所述的裝置,其特征在于,所述插件模塊包括安裝能力配置文件單元以及能力提供者單元,其中, 安裝能力配置文件単元,用于在IM客戶端中安裝插件時(shí),根據(jù)插件中設(shè)置的初始能力配置文件,獲取安裝的插件對(duì)應(yīng)的能力信息并存儲(chǔ),接收能力查詢請(qǐng)求,如果能力查詢請(qǐng)求中攜帯的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為不可用,向能力提供者單元輸出能力標(biāo)識(shí);接收能力提供者単元返回的查詢結(jié)果,向能力中心單元發(fā)送;如果能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)的能力狀態(tài)標(biāo)識(shí)為可用,向能力中心單元發(fā)送包含可用信息的查詢結(jié)果; 能力提供者単元,用于存儲(chǔ)即時(shí)通訊客戶端提供的能力所需的服務(wù)信息以及即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限信息,接收能力標(biāo)識(shí),如果存儲(chǔ)有該能力所需的服務(wù)信息、且該即時(shí)通訊客戶端用戶享有該服務(wù)的權(quán)限,輸出包含可用信息的查詢結(jié)果;否則,輸出包含不可用信息的查詢結(jié)果。
全文摘要
本發(fā)明公開了一種查詢即時(shí)通訊IM客戶端能力信息的方法及裝置。該方法包括查詢IM客戶端中安裝的插件/軟件,獲取插件/軟件的能力信息并存儲(chǔ);根據(jù)接收的能力查詢請(qǐng)求中攜帶的能力標(biāo)識(shí),查詢存儲(chǔ)的插件/軟件能力信息,獲取查詢結(jié)果;向發(fā)送能力查詢請(qǐng)求的IM客戶端返回查詢結(jié)果以便該IM客戶端根據(jù)查詢結(jié)果執(zhí)行相應(yīng)操作。應(yīng)用本發(fā)明,可以擴(kuò)展查詢適用范圍、提高查詢可靠性。
文檔編號(hào)H04L12/58GK102790753SQ20111013178
公開日2012年11月21日 申請(qǐng)日期2011年5月20日 優(yōu)先權(quán)日2011年5月20日
發(fā)明者吳祖榕, 欒濤 申請(qǐng)人:騰訊科技(深圳)有限公司