一種遠(yuǎn)程桌面操作的方法及客戶端的制作方法
【專利摘要】本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法及客戶端,使得基于瀏覽器的遠(yuǎn)程桌面能夠支持對基本輸入輸出之外的擴(kuò)展數(shù)據(jù)進(jìn)行操作。該方法包括:接收服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令;確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào)用;若所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用,根據(jù)所述RDP操作命令調(diào)用對應(yīng)的客戶端的應(yīng)用程序接口API,以使得所述客戶端執(zhí)行所述RDP操作命令請求的操作。本發(fā)明實施例適用網(wǎng)絡(luò)【技術(shù)領(lǐng)域】。
【專利說明】一種遠(yuǎn)程桌面操作的方法及客戶端
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,尤其涉及一種實現(xiàn)遠(yuǎn)程桌面的方法及客戶端。
【背景技術(shù)】
[0002] 遠(yuǎn)程桌面主要是向用戶提供了另外一臺機(jī)器的圖形界面,讓用戶能在本地對另外 一臺機(jī)器進(jìn)行控制。通常遠(yuǎn)程桌面分為兩部分:服務(wù)器和客戶端。服務(wù)器和客戶端通過基 于遠(yuǎn)程桌面協(xié)議(Remote Desktop Protocol,簡稱RDP)互相通信。
[0003] 超文本標(biāo)記語言第五版本(Hypertext Markup Language. 5,簡稱HTML5)是超文本 標(biāo)記語言(Hypertext Markup Language,簡稱HTML)的下一個主要的修訂版本,其中HTML5 提出了一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù)。
[0004] 而現(xiàn)有技術(shù)中,基于HTML5的瀏覽器的遠(yuǎn)程桌面,在所述服務(wù)器和客戶端之間通 常設(shè)置有網(wǎng)關(guān),網(wǎng)關(guān)作為RDP協(xié)議和HTML5協(xié)議的中轉(zhuǎn),具體的該網(wǎng)關(guān)用于將所述服務(wù)器端 的遠(yuǎn)程桌面協(xié)議圖像數(shù)據(jù)進(jìn)行解析后,然后打包封裝為HTML5的數(shù)據(jù)發(fā)送給所述客戶端的 瀏覽器;相應(yīng)的,還用于在瀏覽器捕捉到用戶在所述客戶端的人機(jī)交互接口輸入操作命令 時,如鼠標(biāo)鍵盤輸入的操作命令,將該操作命令發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)將該操作命令解析后,打 包封裝為RDP數(shù)據(jù)發(fā)送給所述遠(yuǎn)程桌面RDP服務(wù)器端。
[0005] 但是由于基于HTML5的瀏覽器僅支持計算機(jī)的基本輸入輸出數(shù)據(jù),例如圖像數(shù)據(jù) 和鼠標(biāo)鍵盤數(shù)據(jù),因此目前的遠(yuǎn)程桌面系統(tǒng)不支持一些擴(kuò)展數(shù)據(jù)相關(guān)的操作,例如,不支持 文件系統(tǒng)的轉(zhuǎn)向,使得客戶端無法使用本地的文件系統(tǒng);不支持打印機(jī)的轉(zhuǎn)向,客戶端無法 使用本地的打印機(jī);不支持客戶端音視頻數(shù)據(jù)的輸入輸出,服務(wù)器上的應(yīng)用程序無法使用 客戶端的音視頻的輸入設(shè)備。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的實施例提供一種遠(yuǎn)程桌面操作的方法及客戶端,使得基于瀏覽器的遠(yuǎn)程 桌面能夠支持對基本輸入輸出之外的擴(kuò)展數(shù)據(jù)進(jìn)行操作。
[0007] 為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0008] 第一方面,本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法,所述方法基于超文本 標(biāo)記語言第五版本HTML5瀏覽器進(jìn)行遠(yuǎn)程桌面操作,該方法包括 :
[0009] 接收服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令;
[0010] 確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào)用;
[0011] 若所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用,根據(jù)所述RDP操作命令 調(diào)用對應(yīng)的客戶端的應(yīng)用程序接口 API,以使得所述客戶端執(zhí)行所述RDP操作命令請求的 操作。
[0012] 第一種可能的實現(xiàn)方式中,根據(jù)第一方面,所述確定所述RDP操作命令是否請求 對客戶端的本地接口進(jìn)行調(diào)用包括:
[0013] 確定所述RDP操作命令是否需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,如 果否,確定所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用。
[0014] 第二種可能的實現(xiàn)方式中,根據(jù)第一種可能的實現(xiàn)方式,還包括:
[0015] 若所述RDP操作命令需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,則調(diào)用所 述HTML5瀏覽器,以使得所述HTML5瀏覽器對所述RDP操作命令進(jìn)行解析生成圖像信息。
[0016] 第三種可能的實現(xiàn)方式中,根據(jù)第二種可能的實現(xiàn)方式,所述調(diào)用所述HTML5瀏 覽器之前,還包括:將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的格式。
[0017] 第四種可能的實現(xiàn)方式中,結(jié)合第一方面或根據(jù)第一至三種可能的實現(xiàn)方式,接 收所述HTML5瀏覽器根據(jù)用戶操作發(fā)送的第二操作請求,所述第二操作請求需要對客戶端 當(dāng)前的圖形界面進(jìn)行操作;
[0018] 根據(jù)所述第二操作請求,對所述客戶端的本地接口進(jìn)行,以使得所述客戶端執(zhí)行 所述第二操作命令請求的操作。
[0019] 第五種可能的實現(xiàn)方式中,根據(jù)第四種可能的實現(xiàn)方式,所述第二操作請求為放 大或縮小所述圖形界面的操作請求。
[0020] 第二方面,本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的客戶端,該客戶端包括: HTML5瀏覽器模塊、通信模塊、本地應(yīng)用程序接口 API模塊和調(diào)用模塊;
[0021] 所述HTML5瀏覽器模塊,用于基于超文本標(biāo)記語言第五版本HTML5瀏覽器進(jìn)行遠(yuǎn) 程桌面操作;
[0022] 所述通信模塊,用于接收所述服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令;
[0023] 所述調(diào)用模塊,用于確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào) 用,若需要,根據(jù)所述RDP操作命令調(diào)用對應(yīng)的客戶端的本地API模塊,若不需要,調(diào)用所述 HTML5瀏覽器模塊;
[0024] 所述本地API模塊,用于在接收到所述調(diào)用模塊的調(diào)用命令時,執(zhí)行所述RDP操作 命令請求的操作。
[0025] 第一種可能的實現(xiàn)方式中,結(jié)合第二方面,若服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操 作命令需要對圖形界面數(shù)據(jù)進(jìn)行處理,所述HTML5瀏覽器模塊還用于對所述RDP操作命令 進(jìn)行解析生成圖像信息。
[0026] 第二種可能的實現(xiàn)方式中,結(jié)合第二方面或根據(jù)第一種可能的實現(xiàn)方式,所述 HTML5瀏覽器模塊包括:WebSocket服務(wù)器子模塊和HTML5 Canvas子模塊;
[0027] 所述調(diào)用模塊,還用于將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的格式;
[0028] 所述WebSocket服務(wù)器子模塊,用于將轉(zhuǎn)換后的支持HTML5協(xié)議的操作命令發(fā)送 給所述HTML5 Canvas子模塊;
[0029] 所述HTML5 Canvas子模塊,用于將所述轉(zhuǎn)換后的操作命令進(jìn)行解析生成圖像信 肩、。
[0030] 第三種可能的實現(xiàn)方式中,根據(jù)第二種可能的實現(xiàn)方式,所述客戶端還包括輸入 接口、人機(jī)交互接口;
[0031] 所述HTML5 Canvas子模塊,還用于捕捉用戶通過輸入接口和/或人機(jī)交互接口輸 入的操作請求,將所述操作請求發(fā)送給所述WebSocket服務(wù)器;
[0032] 所述WebSocket服務(wù)器子模塊,還用于將所述操作請求轉(zhuǎn)發(fā)給所述調(diào)用模塊;
[0033] 所述調(diào)用模塊,還用于確定所述操作請求是否需要對客戶端當(dāng)前的圖形界面進(jìn)行 操作;若確定所述操作請求不需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,則將所述操作請求 轉(zhuǎn)換成RDP協(xié)議支持的格式。
[0034] 第四種可能的實現(xiàn)方式中,根據(jù)第三種可能的實現(xiàn)方式,所述WebSocket服務(wù)器 子模塊,還用于若所述操作請求需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,將所述操作請求 發(fā)送給所述調(diào)用模塊,以使得所述調(diào)用模塊調(diào)用相應(yīng)的本地API模塊。
[0035] 第五種可能的實現(xiàn)方式中,根據(jù)第四種可能的實現(xiàn)方式,所述需要對客戶端當(dāng)前 的圖形界面進(jìn)行操作的操作請求包括:放大或縮小圖形界面的操作請求。
[0036] 第六種可能的實現(xiàn)方式中,結(jié)合第二方面或第一種至第五種可能的實現(xiàn)方式,所 述調(diào)用模塊為網(wǎng)關(guān)插件。
[0037] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法及客戶端,該方法包括:接收服務(wù) 器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令;確定所述RDP操作命令是否需要對客戶端的本地接 口進(jìn)行調(diào)用;若所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用,根據(jù)所述RDP操作命 令調(diào)用對應(yīng)的客戶端的應(yīng)用程序接口 API,以使得所述客戶端執(zhí)行所述RDP操作命令請求 的操作。這樣由于該方法對于采用HTML5瀏覽器的客戶端在接入遠(yuǎn)端服務(wù)器的時候,仍然 能夠調(diào)用本地客戶端的API,這樣基于瀏覽器進(jìn)行遠(yuǎn)程桌面操作時,即在對圖像數(shù)據(jù)進(jìn)行的 操作采用HTML實現(xiàn)的同時,還可以支持RDP協(xié)議的擴(kuò)展通道,將所述對擴(kuò)展數(shù)據(jù)進(jìn)行的操 作可以重定向到本地的客戶端,調(diào)用對應(yīng)的本地的API執(zhí)行。
【專利附圖】
【附圖說明】
[0038] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0039] 圖1為本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法流程示意圖;
[0040] 圖2為本發(fā)明實施例提供了另一種遠(yuǎn)程桌面操作的方法流程示意圖;
[0041] 圖3為本發(fā)明實施例提供的遠(yuǎn)程桌面系統(tǒng)示例圖;
[0042] 圖4本發(fā)明實施例提供的重定向錄音操作的系統(tǒng)交互示意圖;
[0043] 圖5為本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的客戶端的結(jié)構(gòu)示意圖;
[0044] 圖6為本發(fā)明實施例提供了另一種遠(yuǎn)程桌面操作的客戶端的結(jié)構(gòu)示意圖;
[0045] 圖7為本發(fā)明實施例提供了再一種遠(yuǎn)程桌面操作的客戶端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0046] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護(hù)的范圍。
[0047] 需要說明的是,本發(fā)明實施例中出現(xiàn)的"本地接口"、"本地API接口 "以及"本地 API接口模塊"可被互換使用。另本文中術(shù)語"和/或",僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān) 系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨(dú)存在A,同時存在A和B,單獨(dú) 存在B這三種情況。另外,本文中字符"/",一般表示前后關(guān)聯(lián)對象是一種"或"的關(guān)系。
[0048] 實施例一、
[0049] 為了解決目前的遠(yuǎn)程桌面系統(tǒng)不支持一些擴(kuò)展數(shù)據(jù)相關(guān)的操作的問題,本發(fā)明實 施例對客戶端的功能進(jìn)行擴(kuò)展,在客戶端增加本地應(yīng)用程序接口的調(diào)用模塊,該本地應(yīng)用 程序接口的調(diào)用模塊接收到服務(wù)器根據(jù)用戶的指令所發(fā)送的對本地應(yīng)用程序接口的調(diào)用 命令之后,調(diào)用相對應(yīng)的本地應(yīng)用程序接口,用來完成對擴(kuò)展數(shù)據(jù)的對應(yīng)的操作。
[0050] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法,其中,所述方法基于瀏覽器進(jìn)行 遠(yuǎn)程桌面操作,該方法應(yīng)用于客戶端遠(yuǎn)程接入遠(yuǎn)端服務(wù)器的應(yīng)用場景,所述客戶端采用 HTML5瀏覽器,如圖1所示,該方法包括:
[0051] 101、接收服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令。
[0052] 其中,所述服務(wù)器發(fā)送的RDP操作命令可以是對圖像數(shù)據(jù)進(jìn)行操作的命令,也可 以是對擴(kuò)展數(shù)據(jù)的操作。
[0053] 其中,對圖像數(shù)據(jù)進(jìn)行操作可以是通過所述客戶端的HTML5來完成,而對擴(kuò)展數(shù) 據(jù)的操作需要調(diào)用對應(yīng)的客戶端的本地應(yīng)用程序接口 API完成。
[0054] 102、確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào)用。
[0055] 客戶端在接收到所述服務(wù)器發(fā)送的RDP操作命令需要判斷是需要對客戶端的本 地接口進(jìn)行調(diào)用還是對圖像數(shù)據(jù)進(jìn)行操作,用于客戶端確定HTML5來執(zhí)行該請求,還是調(diào) 用本地API執(zhí)行該請求。
[0056] 103、如果所述操作命令是需要對所述客戶端的本地接口進(jìn)行調(diào)用,則根據(jù)所述 RDP操作命令調(diào)用對應(yīng)的客戶端的應(yīng)用程序接口 API,以使得所述客戶端執(zhí)行所述RDP操作 命令請求的操作。
[0057] 可選的,由于該遠(yuǎn)程桌面操作的客戶端可以調(diào)用客戶端本地的API,該方法還可以 包括:接收所述HTML5瀏覽器根據(jù)用戶操作發(fā)送的第二操作請求,所述第二操作請求需要 對客戶端當(dāng)前的圖形界面進(jìn)行操作;
[0058] 根據(jù)所述第二操作請求,對所述客戶端的本地接口進(jìn)行,以使得所述客戶端執(zhí)行 所述第二操作命令請求的操作。
[0059] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法,由于該方法對于采用HTML5瀏覽 器的客戶端在接入遠(yuǎn)端服務(wù)器的時候,仍然能夠調(diào)用本地客戶端的API,這樣基于瀏覽器進(jìn) 行遠(yuǎn)程桌面操作時,即在對圖像數(shù)據(jù)進(jìn)行的操作采用HTML實現(xiàn)的同時,還可以支持RDP協(xié) 議的擴(kuò)展通道,將對擴(kuò)展數(shù)據(jù)進(jìn)行的操作可以重定向到本地的客戶端,調(diào)用對應(yīng)的API執(zhí) 行。
[0060] 實施例二、
[0061] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法,其中,所述方法基于超文本標(biāo)記 語言HTML進(jìn)行遠(yuǎn)程桌面操作,如圖2所示,該方法包括:
[0062] 201、客戶端接入遠(yuǎn)端服務(wù)器。
[0063] 202、所述客戶端根據(jù)用戶的操作向所述服務(wù)器發(fā)送的第一操作請求。
[0064] 其中,所述第一操作請求用于對該客戶端對應(yīng)的應(yīng)用進(jìn)行操作,例如圖形界面顯 示的應(yīng)用。
[0065] 所述客戶端對應(yīng)的應(yīng)用為安裝或存儲并執(zhí)行在所述遠(yuǎn)端服務(wù)器上。
[0066] 舉例來說,第一操作請求可以是用戶開啟所述客戶端圖形界面顯示的某一應(yīng)用程 序,或者播放所述客戶端圖形界面顯示的音視頻文件等,或者打印所述圖形界面顯示的文 件等。
[0067] 其中,所述第一操作請求為通過所述客戶端的輸入接口輸入的操作命令;和/或, 通過人機(jī)交互接口輸入的操作命令。
[0068] 具體的,輸入接口可以是以下接口中的至少一種:音頻輸入接口、視頻輸入接口、 通用串行總線接口(Universal Serial BUS,簡稱USB)。本發(fā)明實施例所指的輸入接口不 限于此,在此不一一窮舉。
[0069] 舉例來說,用戶可以通過鼠標(biāo)對某一應(yīng)用的操作請求,用戶還可以通過音頻輸入 語音的操作請求。
[0070] 203、所述服務(wù)器根據(jù)所述第一操作請求向所述客戶端發(fā)送RDP操作命令。
[0071] 其中,所述RDP操作命令可以攜帶所述RDP操作命令所需要調(diào)用的客戶端本地應(yīng) 用程序接口的指示或者圖形界面的數(shù)據(jù)。
[0072] 由于所述遠(yuǎn)程操作的客戶端和所述服務(wù)器之間遵循RDP協(xié)議,所以所述第一操作 命令被封裝為RDP格式。
[0073] 所述客戶端圖形界面顯示的應(yīng)用安裝或存儲并執(zhí)行在服務(wù)器,在所述遠(yuǎn)程桌面操 作的客戶端接收到第一操作請求后,需要將所述第一操作請求發(fā)送給所述服務(wù)器,以使得 所述服務(wù)器執(zhí)行所述第一操作請求。
[0074] 需要說明的是,若所述服務(wù)器需要直接執(zhí)行所述第一操作請求,則在執(zhí)行所述第 一操作請求后,所述服務(wù)器將其執(zhí)行所述第一操作請求后的圖形界面的數(shù)據(jù)發(fā)送給所述客 戶端,即將圖像數(shù)據(jù)重定向給客戶端,以使得客戶端進(jìn)行描繪和顯示。
[0075] 而若所述服務(wù)器確定所述第一操作請求可以通過調(diào)用客戶端的本地應(yīng)用程序接 口,不直接執(zhí)行所述第一操作請求,所述服務(wù)器重定向所述第一操作請求(以RDP操作命令 的形式),該RDP操作命令攜帶所述RDP操作命令所需要調(diào)用的客戶端本地應(yīng)用程序接口的 指示,向所述客戶端發(fā)送RDP操作命令,使得所述遠(yuǎn)程客戶端執(zhí)行所述操作命令,調(diào)用本地 的應(yīng)用程序接口。
[0076] 204、所述客戶端接收所述服務(wù)器發(fā)送的所述RDP操作命令。
[0077] 205、所述客戶端確定所述RDP操作命令是否需要所述HTML5瀏覽器對圖形界面數(shù) 據(jù)進(jìn)行處理。
[0078] 其中,所述客戶端的本地API包括客戶端的文件系統(tǒng)接口、客戶端的本地打印機(jī) 接口、客戶端的通信端口或客戶端的音視頻輸入輸出設(shè)備的接口等。
[0079] 206、若所述RDP操作命令需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,則調(diào) 用所述HTML5瀏覽器,以使得所述HTML5瀏覽器對所述RDP操作命令進(jìn)行解析生成圖像信 肩、。
[0080] 具體的,可以采用HTML5中的畫布工具Canvas對所述RDP操作命令中包含的圖像 數(shù)據(jù)進(jìn)行解析生成圖像信息。
[0081] 在對所述RDP操作命令中包含的圖像數(shù)據(jù)進(jìn)行解析生成圖像信息之前,客戶端還 可以進(jìn)一步將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的WebSocket格式。
[0082] 在對所述RDP操作命令中包含的圖像數(shù)據(jù)進(jìn)行解析生成圖像信息后,將生成的圖 像信息在客戶端中進(jìn)行顯示。
[0083] 207、若所述RDP操作命令不需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,則 根據(jù)所述RDP操作命令請求的操作調(diào)用相應(yīng)客戶端的本地應(yīng)用程序接口 API,確定所述RDP 操作命令需要對客戶端的本地接口進(jìn)行調(diào)用,以使得所述客戶端執(zhí)行所述RDP操作命令請 求的操作。
[0084] 以下具體以重定向錄音功能為例具體說明,其中,如圖3所示,該遠(yuǎn)程桌面的系統(tǒng) 示例圖,客戶端由四部分組成,分別包括:網(wǎng)關(guān)插件、WebSocket服務(wù)器、HTML5 Canvas和本 地 API。
[0085] 其中,WebSocket服務(wù)器用于向HTML5 Canvas推送來自于服務(wù)器的圖像數(shù)據(jù);同 時還用于將HTML5 Canvas捕捉到的鼠標(biāo)和鍵盤輸入的操作請求經(jīng)過網(wǎng)關(guān)插件發(fā)送給服務(wù) 器。HTML5 Canvas用于捕捉鼠標(biāo)和鍵盤輸入的操作請求,并將該操作請求上傳給WebSocke 服務(wù)器。網(wǎng)關(guān)插件用于對來自于HTML5瀏覽器的基于WebSocket協(xié)議的數(shù)據(jù)和來自于服務(wù) 器的RDP協(xié)議的數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換,還用于在接收到服務(wù)器發(fā)送的RDP操作命令,若該操作 命令是請求對客戶端的本地接口進(jìn)行調(diào)用,調(diào)用對應(yīng)的本地API。
[0086] 需要說明的是,圖3中的客戶端的組成示意圖只是示意性的描述,不局限于該客 戶端的結(jié)構(gòu)。當(dāng)然該客戶端還可以只包括WebSocket服務(wù)器、HTML5 Canvas、本地API和本 地API的調(diào)用單元,至于對來自于HTML5瀏覽器的基于WebSocket協(xié)議的數(shù)據(jù)和來自于服 務(wù)器的RDP協(xié)議的數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換的網(wǎng)關(guān)插件也可以作為獨(dú)立的裝置,或作為服務(wù)器的 模塊。具體的,本發(fā)明實施例對此不作具體限定。
[0087] 以下以圖4所示的該遠(yuǎn)程桌面的系統(tǒng)為例,具體說明該方法包括:
[0088] 301、用戶在HTML5 Canvas程序界面點擊某一應(yīng)用的錄音按鈕,HTML5 Canvas捕 捉到該錄音請求。
[0089] 302、HTML5 Canvas向Websocket服務(wù)器上傳該錄音請求。
[0090] 303、Websocket服務(wù)器將該錄音請求發(fā)送給網(wǎng)關(guān)插件。
[0091] 304、網(wǎng)關(guān)插件將該錄音請求打包封裝為RDP格式的命令。
[0092] 305、網(wǎng)關(guān)插件將該RDP格式的命令發(fā)送給所述服務(wù)器。
[0093] 306、服務(wù)器觸發(fā)本地程序上的錄音按鈕的監(jiān)聽事件,調(diào)用本地聲音接口程序。
[0094] 307、服務(wù)器捕捉到該監(jiān)聽事件,向網(wǎng)關(guān)插件發(fā)送服務(wù)器支持的聲音格式。
[0095] 308、網(wǎng)關(guān)插件調(diào)用本地API,即向本地API查詢客戶端支持的聲音格式。
[0096] 309、本地API向網(wǎng)關(guān)插件返回客戶端支持的聲音格式。
[0097] 310、網(wǎng)關(guān)插件將客戶端支持的聲音格式打包封裝為RDP格式發(fā)送給服務(wù)器。
[0098] 311、服務(wù)器向網(wǎng)關(guān)插件發(fā)送RDP操作命令,該RDP操作命令請求客戶端打開聲音 設(shè)備。
[0099] 312、網(wǎng)關(guān)插件接收到該RDP操作命令后,調(diào)用本地聲音設(shè)備進(jìn)行錄音。
[0100] 313、本地API向網(wǎng)關(guān)插件返回錄音信息。
[0101] 314、網(wǎng)關(guān)插件將該錄音信息打包封裝為RDP格式返回給服務(wù)器。
[0102] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的方法,對于采用HTML5瀏覽器的客戶端 在接入遠(yuǎn)端服務(wù)器的時候,仍然能夠調(diào)用本地客戶端的API,這樣基于瀏覽器進(jìn)行遠(yuǎn)程桌面 操作時,即在對圖像數(shù)據(jù)進(jìn)行的操作采用HTML實現(xiàn)的同時,還可以支持RDP協(xié)議的擴(kuò)展通 道,將對擴(kuò)展數(shù)據(jù)進(jìn)行的操作可以重定向到本地的客戶端,調(diào)用對應(yīng)的API執(zhí)行。
[0103] 實施例三、
[0104] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的客戶端,所述客戶端基于超文本標(biāo)記語 言第五版本HTML5瀏覽器進(jìn)行遠(yuǎn)程桌面操作。具體的,如圖5所示,該客戶端包括:HTML5瀏 覽器模塊51、調(diào)用模塊52、本地應(yīng)用程序接口 API模塊53和通信模塊54。
[0105] 所述HTML5瀏覽器模塊51,用于基于超文本標(biāo)記語言第五版本HTML5瀏覽器進(jìn)行 遠(yuǎn)程桌面操作;
[0106] 所述通信模塊54,用于接收所述服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令;
[0107] 所述調(diào)用模塊52,用于確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行 調(diào)用,若需要,根據(jù)所述RDP操作命令調(diào)用對應(yīng)的客戶端的本地API模塊,若不需要,調(diào)用所 述HTML5瀏覽器模塊51 ;
[0108] 所述本地API模塊53,用于在接收到所述調(diào)用模塊52的調(diào)用命令時,執(zhí)行所述 RDP操作命令請求的操作。
[0109] 其中,所述服務(wù)器發(fā)送的RDP操作命令可以是對圖像數(shù)據(jù)進(jìn)行操作的命令,也可 以是對擴(kuò)展數(shù)據(jù)的操作。
[0110] 其中,對圖像數(shù)據(jù)進(jìn)行操作可以是通過所述HTML5瀏覽器模塊51進(jìn)行解析生成圖 像信息,而對擴(kuò)展數(shù)據(jù)的操作需要調(diào)用模塊52調(diào)用對應(yīng)的客戶端的本地API模塊53完成。
[0111] 進(jìn)一步的,若服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令需要對圖形界面數(shù)據(jù)進(jìn)行 處理,所述HTML5瀏覽器模塊51還用于對所述RDP操作命令進(jìn)行解析生成圖像信息。
[0112] 進(jìn)一步的,如圖6所示,所述HTML5瀏覽器模塊51包括:WebSocket服務(wù)器子模塊 511 和 HTML5 Canvas 子模塊 512 ;
[0113] 所述調(diào)用模塊52,還用于將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的格式;
[0114] 所述WebSocket服務(wù)器子模塊511,用于將轉(zhuǎn)換后的支持HTML5協(xié)議的操作命令發(fā) 送給所述HTML5 Canvas子模塊512 ;
[0115] 所述HTML5 Canvas子模塊512,用于將所述轉(zhuǎn)換后的操作命令進(jìn)行解析生成圖像 信息。
[0116] 進(jìn)一步的,如圖7所示,所述客戶端還包括輸入接口 55、人機(jī)交互接口 56 ;
[0117] 其中,用戶的操作可以是通過輸入接口 55和/或人機(jī)交互接口 56輸入的操作。
[0118] 所述用戶的操作請求用于對該客戶端對應(yīng)的應(yīng)用進(jìn)行操作,例如圖形界面顯示的 應(yīng)用。
[0119] 所述客戶端對應(yīng)的應(yīng)用為安裝或存儲并執(zhí)行在所述遠(yuǎn)端服務(wù)器上。
[0120] 舉例來說,用戶的操作請求可以是用戶開啟所述客戶端圖形界面顯示的某一應(yīng)用 程序,或者播放所述客戶端圖形界面顯示的音視頻文件等,或者打印所述圖形界面顯示的 文件等。
[0121] 具體的,輸入接口 55可以是以下接口中的至少一種:音頻輸入接口、視頻輸入接 口、通用串行總線接口(Universal Serial BUS,簡稱USB)。本發(fā)明實施例所指的輸入接口 不限于此,在此不一一窮舉。
[0122] 舉例來說,用戶可以通過鼠標(biāo)對某一應(yīng)用的操作請求,用戶還可以通過音頻輸入 語音的操作請求。
[0123] 所述HTML5 Canvas子模塊512,還用于捕捉用戶通過輸入接口 55和/或人機(jī)交互 接口 56輸入的操作請求,將所述操作請求發(fā)送給所述WebSocket服務(wù)器511 ;
[0124] 所述WebSocket服務(wù)器子模塊511,還用于將所述操作請求轉(zhuǎn)發(fā)給所述調(diào)用模塊 52 ;
[0125] 所述調(diào)用模塊52,還用確定所述操作請求是否需要對客戶端當(dāng)前的圖形界面進(jìn)行 操作;若確定所述操作請求不需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,則將所述操作請求 轉(zhuǎn)換成RDP協(xié)議支持的格式。
[0126] 然后,該操作請求通過所述通信模塊53發(fā)送給所述服務(wù)器。
[0127] 進(jìn)一步的,所述WebSocket服務(wù)器子模塊511,還用于若所述調(diào)用模塊52確定所 述操作請求需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,將所述操作請求發(fā)送給所述調(diào)用模塊 52,以使得所述調(diào)用模塊52調(diào)用相應(yīng)的本地API模塊53。
[0128] 其中,所述需要對客戶端當(dāng)前的圖形界面進(jìn)行操作的操作請求包括:放大或縮小 圖形界面的操作請求。
[0129] 可選的,所述調(diào)用模塊52具體為網(wǎng)關(guān)插件,示例性的可以參考圖3所示的客戶端。
[0130] 需要說明的是,所屬本領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔, 上述描述的遠(yuǎn)程桌面操作的客戶端的具體工作過程及描述,可以參考實施例一、二方法實 施例中的對應(yīng)過程,在此不再贅述。
[0131] 本發(fā)明實施例提供了一種遠(yuǎn)程桌面操作的客戶端,由于該客戶端在接入遠(yuǎn)端服務(wù) 器的時候,仍然能夠調(diào)用本地客戶端的API,這樣基于瀏覽器進(jìn)行遠(yuǎn)程桌面操作時,即在對 圖像數(shù)據(jù)進(jìn)行的操作采用HTML實現(xiàn)的同時,還可以支持RDP協(xié)議的擴(kuò)展通道,將所述對擴(kuò) 展數(shù)據(jù)進(jìn)行的操作可以重定向到本地的客戶端,調(diào)用對應(yīng)的本地的API執(zhí)行。
[0132] 通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的 方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上 述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成 以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前 述方法實施例中的對應(yīng)過程,在此不再贅述。
[0133] 在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或 單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元 或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所 顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的 間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0134] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目 的。
[0135] 另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單 元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0136] 所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用 時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上 或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī) 設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各 個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲 器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光 盤等各種可以存儲程序代碼的介質(zhì)。
[0137] 以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1. 一種遠(yuǎn)程桌面操作的方法,所述方法基于超文本標(biāo)記語言第五版本HTML5瀏覽器進(jìn) 行遠(yuǎn)程桌面操作,其特征在于,該方法包括 : 接收服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令; 確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào)用; 若所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用,根據(jù)所述RDP操作命令調(diào)用 對應(yīng)的客戶端的應(yīng)用程序接口 API,以使得所述客戶端執(zhí)行所述RDP操作命令請求的操作。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述RDP操作命令是否請求對客 戶端的本地接口進(jìn)行調(diào)用包括: 確定所述RDP操作命令是否需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,如果否, 確定所述RDP操作命令需要對客戶端的本地接口進(jìn)行調(diào)用。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 若所述RDP操作命令需要所述HTML5瀏覽器對圖形界面數(shù)據(jù)進(jìn)行處理,則調(diào)用所述 HTML5瀏覽器,以使得所述HTML5瀏覽器對所述RDP操作命令進(jìn)行解析生成圖像信息。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述調(diào)用所述HTML5瀏覽器之前,還包括: 將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的格式。
5. 根據(jù)權(quán)利要求1-4任一項所述的方法,其特征在于,該方法還包括: 接收所述HTML5瀏覽器根據(jù)用戶操作發(fā)送的第二操作請求,所述第二操作請求需要對 客戶端當(dāng)前的圖形界面進(jìn)行操作; 根據(jù)所述第二操作請求,對所述客戶端的本地接口進(jìn)行,以使得所述客戶端執(zhí)行所述 第二操作命令請求的操作。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第二操作請求為放大或縮小所述圖 形界面的操作請求。
7. -種遠(yuǎn)程桌面操作的客戶端,其特征在于,該客戶端包括:HTML5瀏覽器模塊、通信 模塊、本地應(yīng)用程序接口 API模塊和調(diào)用模塊; 所述HTML5瀏覽器模塊,用于基于超文本標(biāo)記語言第五版本HTML5瀏覽器進(jìn)行遠(yuǎn)程桌 面操作; 所述通信模塊,用于接收所述服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作命令; 所述調(diào)用模塊,用于確定所述RDP操作命令是否需要對客戶端的本地接口進(jìn)行調(diào)用, 若需要,根據(jù)所述RDP操作命令調(diào)用對應(yīng)的客戶端的本地API模塊,若不需要,調(diào)用所述 HTML5瀏覽器模塊; 所述本地API模塊,用于在接收到所述調(diào)用模塊的調(diào)用命令時,執(zhí)行所述RDP操作命令 請求的操作。
8. 根據(jù)權(quán)利要求7所述的客戶端,其特征在于,若服務(wù)器發(fā)送的遠(yuǎn)程桌面協(xié)議RDP操作 命令需要對圖形界面數(shù)據(jù)進(jìn)行處理,所述HTML5瀏覽器模塊還用于對所述RDP操作命令進(jìn) 行解析生成圖像信息。
9. 根據(jù)權(quán)利要求8所述的客戶端,其特征在于,所述HTML5瀏覽器模塊包括: WebSocket服務(wù)器子模塊和HTML5 Canvas子模塊; 所述調(diào)用模塊,還用于將所述RDP操作命令轉(zhuǎn)換成HTML5協(xié)議支持的格式; 所述WebSocket服務(wù)器子模塊,用于將轉(zhuǎn)換后的支持HTML5協(xié)議的操作命令發(fā)送給所 述HTML5 Canvas子模塊; 所述HTML5 Canvas子模塊,用于將所述轉(zhuǎn)換后的操作命令進(jìn)行解析生成圖像信息。
10. 根據(jù)權(quán)利要求9所述的客戶端,其特征在于,所述客戶端還包括輸入接口、人機(jī)交 互接口; 所述HTML5 Canvas子模塊,還用于捕捉用戶通過輸入接口和/或人機(jī)交互接口輸入的 操作請求,將所述操作請求發(fā)送給所述WebSocket服務(wù)器; 所述WebSocket服務(wù)器子模塊,還用于將所述操作請求轉(zhuǎn)發(fā)給所述調(diào)用模塊; 所述調(diào)用模塊,還用于確定所述操作請求是否需要對客戶端當(dāng)前的圖形界面進(jìn)行操 作;若確定所述操作請求不需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,則將所述操作請求轉(zhuǎn) 換成RDP協(xié)議支持的格式。
11. 根據(jù)權(quán)利要求10所述的客戶端,其特征在于,所述WebSocket服務(wù)器子模塊,還用 于若所述操作請求需要對客戶端當(dāng)前的圖形界面進(jìn)行操作,將所述操作請求發(fā)送給所述調(diào) 用模塊,以使得所述調(diào)用模塊調(diào)用相應(yīng)的本地API模塊。
12. 根據(jù)權(quán)利要求11所述的客戶端,其特征在于,所述需要對客戶端當(dāng)前的圖形界面 進(jìn)行操作的操作請求包括:放大或縮小圖形界面的操作請求。
13. 根據(jù)權(quán)利要求7-11任一項所述的客戶端,其特征在于,所述調(diào)用模塊為網(wǎng)關(guān)插件。
【文檔編號】H04L29/08GK104065679SQ201310091463
【公開日】2014年9月24日 申請日期:2013年3月21日 優(yōu)先權(quán)日:2013年3月21日
【發(fā)明者】李嘉, 吳奇 申請人:華為技術(shù)有限公司