一種遠程重定向方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及云技術領域,具體涉及一種遠程重定向方法和裝置。
【背景技術】
[0002]隨著近年來終端技術和網(wǎng)絡帶寬的高速發(fā)展,云計算技術的日趨成熟催生了云交互系統(tǒng),現(xiàn)有的云交互系統(tǒng)通常包括服務器和多個用戶設備,服務器可以是集群服務器,多種交互式應用都可以運行在云交互系統(tǒng)中。
[0003]交互式應用運行時,服務器通常需要對用戶設備側的鍵盤鼠標控制進行遠程重定向。目前,常用以下方式對鍵盤和鼠標控制進行遠程重定向:
[0004]—種方式是,通過對交互式應用服務器上的客戶端的邏輯代碼進行修改,實現(xiàn)鍵盤鼠標控制的重定向。該方式不具有通用性。
[0005]另一種方式是,通過將鍵盤鼠標控制在服務器的系統(tǒng)層進行回放實現(xiàn)鍵盤鼠標控制的重定向。該方式由于在服務器的系統(tǒng)層進行,對系統(tǒng)全局的鍵盤鼠標狀態(tài)都有影響,當服務器上運行多個交互式應用的客戶端時,多個客戶端會相互影響,導致每臺服務器只能提供一個客戶端,不能充分利用服務器資源。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供一種遠程重定向方法和裝置,以支持在服務器上運行多個交互式應用的客戶端且不用修改客戶端的現(xiàn)有邏輯代碼。
[0007]本發(fā)明第一方面提供一種遠程重定向方法,所述方法應用于云交互系統(tǒng),所述云交互系統(tǒng)包括服務器和用戶設備,所述服務器中運行有至少一個交互式應用的至少一個Tracer端,第一 Tracer端是所述至少一個Tracer端中的任一 Tracer端;所述方法包括:服務器獲取所述用戶設備側的輸入裝置的控制操作;根據(jù)所述控制操作更新第一狀態(tài)表,所述第一狀態(tài)表用于所述第一 Tracer端記錄所述用戶設備側的輸入裝置的操作狀態(tài);根據(jù)所述控制操作生成相應的控制消息,將所述控制消息傳遞給所述第一 T r a c e r端;將所述第一Tracer端的用于獲取輸入裝置的操作狀態(tài)的指令,采用Hook技術重定向到所述第一狀態(tài)表,以便所述第一Tracer端根據(jù)所述控制消息和所述第一狀態(tài)表進行邏輯處理。
[0008]本發(fā)明第二方面提供一種遠程重定向裝置,所述裝置應用于云交互系統(tǒng)中的服務器,所述云交互系統(tǒng)包括所述服務器和用戶設備,所述服務器中運行有至少一個交互式應用的至少一個Tracer端,第一Tracer端是所述至少一個Tracer端中的任一Tracer端;所述裝置包括:獲取模塊,用于獲取用戶設備側的輸入裝置的控制操作;更新模塊,用于根據(jù)所述控制操作更新第一狀態(tài)表,所述第一狀態(tài)表用于所述第一 Tracer端記錄用戶設備側的輸入裝置的操作狀態(tài);消息處理模塊,用于根據(jù)所述控制操作生成相應的控制消息,將所述控制消息傳遞給所述第一 Tracer端;重定向模塊,用于將所述第一 Tracer端的用于獲取輸入裝置的操作狀態(tài)的指令,采用Hook技術重定向到所述第一狀態(tài)表,以便所述第一Tracer端根據(jù)所述控制消息和所述第一狀態(tài)表進行邏輯處理。
[0009]由上可見,在本發(fā)明的一些可行的實施方式中,服務器將獲取的用戶設備側的輸入裝置的控制操作記錄到專用的第一狀態(tài)表中,同時生成控制消息傳遞給Tracer端,并采用Hook技術將Tracer端的用于獲取鍵盤鼠標等輸入裝置的操作狀態(tài)的指令重定向到所述第一狀態(tài)表,實現(xiàn)了對鍵盤和鼠標等輸入裝置的控制操作進行遠程重定向,取得了以下技術效果:
[00?0] 1、采用Hook技術實現(xiàn)重定向,不用修改Trace端的現(xiàn)有邏輯代碼;
[0011 ] 2、各個Tracer端使用各自的鍵盤鼠標狀態(tài)表,且重定向過程在Tracer端內(nèi)部完成,因此,各個Tracer端的遠程重定向操作不會互相影響,從而支持在服務器上運行多個交互式應用的多個Tracer端。
【附圖說明】
[0012]為了更清楚地說明本發(fā)明實施例技術方案,下面將對實施例和現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0013]圖1是一種采用的重定向方法中云交互系統(tǒng)的架構示意圖;
[0014]圖2是另一種采用的重定向方法中云交互系統(tǒng)的架構示意圖;
[0015]圖3是又一種采用的重定向方法中云交互系統(tǒng)的架構示意圖;
[0016]圖4是本發(fā)明實施例提供的一種遠程重定向方法的流程示意圖;
[0017]圖5是本發(fā)明實施例中一種云交互系統(tǒng)的架構示意圖;
[0018]圖6是本發(fā)明實施例提供的一種遠程重定向裝置的結構示意圖;
[0019]圖7是本發(fā)明實施例提供的一種服務器的結構示意圖。
【具體實施方式】
[0020]為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
[0021]云交互系統(tǒng)包括服務器和用戶設備,用于運行云游戲等交互式應用。交互式應用分別運行在服務器和用戶設備的客戶端通常被稱為Trace端和Retrace端。其中,云游戲是指:游戲的真實客戶端在云服務器上運行,同時將游戲的畫面在玩家機器上進行顯示,通過將玩家本地的鍵盤和鼠標控制遠程重定向到云服務器來實現(xiàn)對游戲的控制。以云游戲為例,Trace端是指:運行在云游戲服務器上的游戲客戶端,即云游戲的云端,執(zhí)行游戲的主要邏輯運行,把與用戶交互有關的圖形界面,經(jīng)網(wǎng)絡傳送給Retrace端。Retrace端是指:運行在用戶設備上的客戶端,即云游戲的用戶端,用于表現(xiàn)Trace端的游戲圖形界面,把用戶的鼠標、鍵盤等設備輸入,經(jīng)網(wǎng)絡傳送給Trace端。
[0022]目前,常用以下方式對鍵盤和鼠標控制進行遠程重定向:
[0023]第一種方法是通過對云游戲服務器上游戲客戶端即Trace端進行修改,實現(xiàn)鍵盤鼠標控制的重定向。如圖1所示,是采用該種方法的云交互系統(tǒng)的架構圖。云交互系統(tǒng)包括服務器和用戶設備,以及,分別運行在服務器和用戶設備上的交互式應用的Trace端和Retrace 端。
[0024]如圖1所示,這種方案需要對服務器上的游戲客戶端即Trace端進行修改,將用于接收Re tracer端的鍵盤鼠標控制消息的接收模塊以及處理模塊集成到游戲的邏輯中,Tracer端即為修改過后的游戲客戶端。此方案首先在Retracer端對系統(tǒng)分發(fā)的鍵盤鼠標控制操作進行封裝,通過網(wǎng)絡將封裝之后的鍵盤鼠標控制發(fā)送至Tracer端,Tracer端通過網(wǎng)絡接收鍵盤鼠標控制操作,并處理相應邏輯。
[0025]第二種方法是通過將鍵盤鼠標控制在服務器的系統(tǒng)層進行回放實現(xiàn)鍵盤鼠標控制的重定向。如圖2和圖3所示,是采用該種方法的云交互系統(tǒng)的架構圖。云交互系統(tǒng)包括服務器和用戶設備,以及,分別運行在服務器和用戶設備上的交互式應用的Trace端和Retrace 端。
[0026]如圖2和圖3所示,這種方案不需要對服務器上的原有游戲客戶端進行修改,而是將Tracer端接收到的鍵盤鼠標控制消息通過SendInpu等方式轉發(fā)至服務器的系統(tǒng)消息隊列中,模擬鍵盤鼠標的硬件輸入,從而實現(xiàn)鍵盤鼠標控制的遠程重定向。圖2中的方案將接收鍵鼠控制消息的模塊獨立出來,圖3中的方案將接收鍵鼠控制消息的模塊集成在Tracer端,但是對Tracer端本身沒有修改。
[0027]實踐發(fā)現(xiàn),上述兩種方法都有各自的缺陷: