一种远程重定向方法和装置的制造方法_3

文档序号:9814387阅读:来源:国知局
er端的处理逻辑可以从消息处理函数获取控制消息,从第一状态表中获取对应的用户设备侧的键盘鼠标的操作状态,执行相应的逻辑处理。通过采用专用的第一状态表,不用修改Tracer端的逻辑代码,不会影响同意服务器上的其它Tracer端,可以实现对键盘各种组合键控制操作的识别应用。
[0059]采用本发明技术方案,云游戏在启动初始化过程中,需要执行以下操作:在Tracer端对获取键盘鼠标操作状态的API进行Hook,将读取进程键盘鼠标操作状态的操作重定向到Tracer端保存的和用户设备侧同步的键盘鼠标状态表,即第一状态表;在Retracer端通过系统消息处理函数对键盘鼠标控制消息进行记录,并在封装之后通过网络转发至Tracer端。
[0060]需要指出的是,游戏处理逻辑中在接收到键盘鼠标控制消息之后会检测系统当前的键盘鼠标操作状态,根据键盘鼠标操作状态和键盘鼠标控制消息进行逻辑处理,所以,对系统获取键盘鼠标操作状态的API的Hook必须在游戏的主线程中进行,因此可采用双重Hook,先Hook游戏主线程会调用的系统API,当该系统API被调用时,成功注入到主线程中,再在主线程中,对系统获取键盘鼠标操作状态的API进行Hook。
[0061]由上可见,本发明实施例提供的远程重定向方法,可以取得以下技术效果:
[0062]可以减少正常游戏云游戏化的开销,不需要修改原有游戏客户端的游戏逻辑,通过Hook注入技术,在云游戏服务器上的游戏客户端可以正常响应用户针对游戏的所有键盘鼠标操作,使得更多的游戏可以花费很小的代价云游戏化,推动云游戏产业的发展。
[0063]可以提高云游戏服务器的资源利用率,通过Hook技术实现可以在一台云游戏服务器上支持多个Tracer端,资源利用率可以提高很多倍,在云游戏大规模部署之后极大的节约了云游戏在服务器上面的开销。
[0064]另外,本发明技术方案不仅仅适用于云游戏,其它的交互式应用例如在服务器运行真实客户端,在用户设备有镜像程序这种架构的应用可以应用本发明技术方案。
[0065](实施例二、)为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
[0066]请参考图6,本发明实施例提供远程重定向装置600,所述装置600应用于云交互系统中的服务器,所述云交互系统包括所述服务器和用户设备,所述服务器中运行有至少一个交互式应用的至少一个Tracer端,第一Tracer端是所述至少一个Tracer端中的任一Tracer端;所述装置600可以包括:
[0067]获取模块610,用于获取所述用户设备侧的输入装置的控制操作;
[0068]更新模块620,用于根据所述控制操作更新第一状态表,所述第一状态表用于所述第一 Tracer端记录所述用户设备侧的输入装置的操作状态;
[0069]消息处理模块630,用于根据所述控制操作生成相应的控制消息,将所述控制消息传递给所述第一 Tracer端;
[°07°]重定向模块640,用于将所述第一Tracer端的用于获取输入装置的操作状态的指令,采用Hook技术重定向到所述第一状态表,以便所述第一Tracer端根据所述控制消息和所述第一状态表进行逻辑处理。
[0071]在一些实施例中,所述消息处理模块630,具体用于将所述控制消息传递给所述第一 Tracer端的消息处理函数。
[0072]在一些实施例中,所述重定向模块640包括:
[0073]第一重定向单元,用于采用Hook技术注入到所述第一Tracer端的主线程;
[0074]第二重定向单元,用于在所述主线程中,再对所述第一Tracer端的用于获取输入装置的操作状态的API进行Hook,使得所述第一 Tracer端的用于获取输入装置的操作状态的指令被重定向到所述第一状态表。
[0075]在一些实施例中,所述第一重定向单元,具体用于对所述第一Tracer端的主线程会调用的一个系统应用程序编程接口API进行Hook;当所述系统API被调用时,注入到所述主线程。
[0076]在一些实施例中,所述系统API是用于显示光标的API,或者用于创建窗口的API。
[0077]在一些实施例中,所述获取模块610,具体用于接收所述用户设备发送的、封装有所述用户设备侧的输入装置的控制操作的消息。
[0078]可以理解,本发明实施例远程重定向装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。该装置例如可以是服务器。
[0079]由上可见,在本发明的一些可行的实施方式中,服务器将获取的用户设备侧的输入装置的控制操作记录到专用的第一状态表中,同时生成键盘鼠标控制消息传递给Tracer端,并采用Hook技术将Tracer端的用于获取键盘鼠标的操作状态的指令重定向到所述第一状态表,实现了对键盘和鼠标等输入装置的控制操作进行远程重定向,并取得了以下技术效果:
[0080]1、采用Hook技术实现重定向,不用修改Trace端的现有逻辑代码;
[0081 ] 2、各个Tracer端使用各自的键盘鼠标状态表,且重定向过程在Tracer端内部完成,因此,各个Tracer端的远程重定向操作不会互相影响,从而支持在服务器上运行多个交互式应用的多个Tracer端。
[0082]从而,可以减少正常游戏云游戏化的开销,不需要修改原有游戏客户端的游戏逻辑,通过Hook注入技术,在云游戏服务器上的游戏客户端可以正常响应用户针对游戏的所有键盘鼠标操作,使得更多的游戏可以花费很小的代价云游戏化,推动云游戏产业的发展。
[0083]可以提高云游戏服务器的资源利用率,通过Hook技术实现可以在一台云游戏服务器上支持多个Tracer端,资源利用率可以提高很多倍,在云游戏大规模部署之后极大的节约了云游戏在服务器上面的开销。
[0084]另外,本发明技术方案不仅仅适用于云游戏,其它的交互式应用例如在服务器运行真实客户端,在用户设备有镜像程序这种架构的应用可以应用本发明技术方案。
[0085](实施例三、)本发明实施例还提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序当被包括一个或多个处理器的服务器执行时使所述服务器执行如上文方法实施例所述的远程重定向方法。
[0086](实施例四、)请参考图7,本发明实施例还提供一种服务器700,可包括:
[0087]处理器710,存储器720,通信接口 730,总线740;所述处理器710,存储器720,通信接口 730通过所述总线740相互的通信;所述通信接口 730,用于接收和发送数据;所述存储器720用于存储程序750;所述处理器710用于执行所述存储器中的所述程序。当所述服务器700运行时,所述处理器710执行所述存储器720存储的所述程序750,以使所述服务器700执行如上文方法实施例所述的远程重定向方法。
[0088]具体的,通信接口730可用于获取所述用户设备侧的输入装置的控制操作,处理器710可用于根据所述控制操作更新第一状态表,所述第一状态表用于所述第一 Tracer端记录所述用户设备侧的输入装置的操作状态,所述第一状态表可存储于存储器720中,处理器710可用于还根据所述控制操作生成相应的控制消息,通信接口730可用于将所述控制消息传递给所述第一 Tracer端,处理器710可用于将所述第一 Tracer端的用于获取输入装置的操作状态的指令,采用Hook技术重定向到所述第一状态表,以便所述第一Tracer端根据所述控制消息和所述第一状态
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1