一种远程重定向方法和装置的制造方法
【技术领域】
[0001]本发明涉及云技术领域,具体涉及一种远程重定向方法和装置。
【背景技术】
[0002]随着近年来终端技术和网络带宽的高速发展,云计算技术的日趋成熟催生了云交互系统,现有的云交互系统通常包括服务器和多个用户设备,服务器可以是集群服务器,多种交互式应用都可以运行在云交互系统中。
[0003]交互式应用运行时,服务器通常需要对用户设备侧的键盘鼠标控制进行远程重定向。目前,常用以下方式对键盘和鼠标控制进行远程重定向:
[0004]—种方式是,通过对交互式应用服务器上的客户端的逻辑代码进行修改,实现键盘鼠标控制的重定向。该方式不具有通用性。
[0005]另一种方式是,通过将键盘鼠标控制在服务器的系统层进行回放实现键盘鼠标控制的重定向。该方式由于在服务器的系统层进行,对系统全局的键盘鼠标状态都有影响,当服务器上运行多个交互式应用的客户端时,多个客户端会相互影响,导致每台服务器只能提供一个客户端,不能充分利用服务器资源。
【发明内容】
[0006]本发明实施例提供一种远程重定向方法和装置,以支持在服务器上运行多个交互式应用的客户端且不用修改客户端的现有逻辑代码。
[0007]本发明第一方面提供一种远程重定向方法,所述方法应用于云交互系统,所述云交互系统包括服务器和用户设备,所述服务器中运行有至少一个交互式应用的至少一个Tracer端,第一 Tracer端是所述至少一个Tracer端中的任一 Tracer端;所述方法包括:服务器获取所述用户设备侧的输入装置的控制操作;根据所述控制操作更新第一状态表,所述第一状态表用于所述第一 Tracer端记录所述用户设备侧的输入装置的操作状态;根据所述控制操作生成相应的控制消息,将所述控制消息传递给所述第一 T r a c e r端;将所述第一Tracer端的用于获取输入装置的操作状态的指令,采用Hook技术重定向到所述第一状态表,以便所述第一Tracer端根据所述控制消息和所述第一状态表进行逻辑处理。
[0008]本发明第二方面提供一种远程重定向装置,所述装置应用于云交互系统中的服务器,所述云交互系统包括所述服务器和用户设备,所述服务器中运行有至少一个交互式应用的至少一个Tracer端,第一Tracer端是所述至少一个Tracer端中的任一Tracer端;所述装置包括:获取模块,用于获取用户设备侧的输入装置的控制操作;更新模块,用于根据所述控制操作更新第一状态表,所述第一状态表用于所述第一 Tracer端记录用户设备侧的输入装置的操作状态;消息处理模块,用于根据所述控制操作生成相应的控制消息,将所述控制消息传递给所述第一 Tracer端;重定向模块,用于将所述第一 Tracer端的用于获取输入装置的操作状态的指令,采用Hook技术重定向到所述第一状态表,以便所述第一Tracer端根据所述控制消息和所述第一状态表进行逻辑处理。
[0009]由上可见,在本发明的一些可行的实施方式中,服务器将获取的用户设备侧的输入装置的控制操作记录到专用的第一状态表中,同时生成控制消息传递给Tracer端,并采用Hook技术将Tracer端的用于获取键盘鼠标等输入装置的操作状态的指令重定向到所述第一状态表,实现了对键盘和鼠标等输入装置的控制操作进行远程重定向,取得了以下技术效果:
[00?0] 1、采用Hook技术实现重定向,不用修改Trace端的现有逻辑代码;
[0011 ] 2、各个Tracer端使用各自的键盘鼠标状态表,且重定向过程在Tracer端内部完成,因此,各个Tracer端的远程重定向操作不会互相影响,从而支持在服务器上运行多个交互式应用的多个Tracer端。
【附图说明】
[0012]为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0013]图1是一种采用的重定向方法中云交互系统的架构示意图;
[0014]图2是另一种采用的重定向方法中云交互系统的架构示意图;
[0015]图3是又一种采用的重定向方法中云交互系统的架构示意图;
[0016]图4是本发明实施例提供的一种远程重定向方法的流程示意图;
[0017]图5是本发明实施例中一种云交互系统的架构示意图;
[0018]图6是本发明实施例提供的一种远程重定向装置的结构示意图;
[0019]图7是本发明实施例提供的一种服务器的结构示意图。
【具体实施方式】
[0020]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0021]云交互系统包括服务器和用户设备,用于运行云游戏等交互式应用。交互式应用分别运行在服务器和用户设备的客户端通常被称为Trace端和Retrace端。其中,云游戏是指:游戏的真实客户端在云服务器上运行,同时将游戏的画面在玩家机器上进行显示,通过将玩家本地的键盘和鼠标控制远程重定向到云服务器来实现对游戏的控制。以云游戏为例,Trace端是指:运行在云游戏服务器上的游戏客户端,即云游戏的云端,执行游戏的主要逻辑运行,把与用户交互有关的图形界面,经网络传送给Retrace端。Retrace端是指:运行在用户设备上的客户端,即云游戏的用户端,用于表现Trace端的游戏图形界面,把用户的鼠标、键盘等设备输入,经网络传送给Trace端。
[0022]目前,常用以下方式对键盘和鼠标控制进行远程重定向:
[0023]第一种方法是通过对云游戏服务器上游戏客户端即Trace端进行修改,实现键盘鼠标控制的重定向。如图1所示,是采用该种方法的云交互系统的架构图。云交互系统包括服务器和用户设备,以及,分别运行在服务器和用户设备上的交互式应用的Trace端和Retrace 端。
[0024]如图1所示,这种方案需要对服务器上的游戏客户端即Trace端进行修改,将用于接收Re tracer端的键盘鼠标控制消息的接收模块以及处理模块集成到游戏的逻辑中,Tracer端即为修改过后的游戏客户端。此方案首先在Retracer端对系统分发的键盘鼠标控制操作进行封装,通过网络将封装之后的键盘鼠标控制发送至Tracer端,Tracer端通过网络接收键盘鼠标控制操作,并处理相应逻辑。
[0025]第二种方法是通过将键盘鼠标控制在服务器的系统层进行回放实现键盘鼠标控制的重定向。如图2和图3所示,是采用该种方法的云交互系统的架构图。云交互系统包括服务器和用户设备,以及,分别运行在服务器和用户设备上的交互式应用的Trace端和Retrace 端。
[0026]如图2和图3所示,这种方案不需要对服务器上的原有游戏客户端进行修改,而是将Tracer端接收到的键盘鼠标控制消息通过SendInpu等方式转发至服务器的系统消息队列中,模拟键盘鼠标的硬件输入,从而实现键盘鼠标控制的远程重定向。图2中的方案将接收键鼠控制消息的模块独立出来,图3中的方案将接收键鼠控制消息的模块集成在Tracer端,但是对Tracer端本身没有修改。
[0027]实践发现,上述两种方法都有各自的缺陷: