鼠标同步的方法、装置和系统技术领域
本发明实施例涉及计算机技术,特别是一种鼠标同步的方法、装置和系统。
背景技术
云计算网络中包括具有强大计算能力的“云服务器”和用户终端,云计算的核心理
念就是通过不断提高“云服务器”的处理能力,进而减少用户终端的处理负担,最终使用户
终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力。用户终端
访问云服务器可以通过远程桌面实现。桌面云是远程桌面中的一种,为云计算技术提供的
统一桌面服务,桌面云将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够
获得完整PC的使用体验。用户可以通过瘦客户端(Thin Client,TC)或者类似的设备(简称
云终端)在局域网或者远程访问获得与传统PC一致的用户体验。
桌面云技术中,需要将客户端的鼠标的操作信息传递到服务器端,以使得客户端
的鼠标操作在服务器端执行并生效,例如,用户移动客户端的鼠标,客户端通过本地系统的
鼠标控制应用程序接口(Application Programming Interface,API),获得客户端鼠标按
键状态和当前客户端鼠标的位置信息,再通过协议通讯将其获取的客户端鼠标操作信息传
递到服务器端,服务器端接收到客户端鼠标操作信息后,根据客户端鼠标操作信息再通过
相关API将服务器端鼠标设置到相关位置和状态。
在上述过程中,如何在客户端显示鼠标的操作信息是一个关键的技术。现有技术
中的一种方案是客户端获取到自己的鼠标操作信息之后,先根据自己鼠标的位置信息显示
鼠标的位置移动,使得用户立即看到鼠标位置的移动,再向服务器端传递本端鼠标的操作
信息,服务器端获取客户端鼠标操作信息执行相关服务器端鼠标操作之后,服务器端隐藏
自己的鼠标光标,并发送自己的鼠标光标图形给客户端,客户端在之前已经显示给用户的
鼠标的位置上,直接显示接收到的服务端鼠标光标形状即可。
然而上述技术方案,实际上存在客户端显示的鼠标位置和服务端实际鼠标位置不
能精确同步的问题,如果服务器端还运行一些对鼠标位置进行控制的特殊程序,例如,在虚
拟桌面中运行即时通讯软件,可以给他人共享自己的桌面,并允许他人远程控制鼠标,此类
软件会不断设置虚拟桌面鼠标位置为他人远程控制的位置,再例如,虚拟桌面运行第一人
称视角射击游戏时,通常此类游戏都会强制设置鼠标到屏幕中央,此时,由于客户端显示的
是自己的鼠标位置,因此会导致用户看不到服务器端鼠标光标的真实位置,造成不同步。
发明内容
本发明实施例提出了一种鼠标同步的方法、装置和系统,以实现客户端鼠标与服
务器端鼠标的同步。
第一方面,本发明实施例提出了一种鼠标同步的方法,所述鼠标同步包括客户端
鼠标与服务器端鼠标的同步,包括:获取客户端鼠标的第一信息,其中,所述客户端鼠标的
第一信息是用户操作客户端鼠标之后客户端鼠标的实时信息;根据所述客户端鼠标的第一
信息控制客户端光标移动;向服务器端上报所述客户端鼠标的第一信息,以使得所述服务
器端根据所述客户端鼠标的第一信息进行鼠标重定向操作;接收所述服务器端返回的服务
器端鼠标的第二信息,其中,所述服务器端鼠标的第二信息为所述服务器端根据所述客户
端鼠标的第一信息进行鼠标重定向操作之后的服务器端鼠标的实时信息;根据所述服务器
端鼠标的第二信息控制所述客户端光标再次移动。
结合第一方面,在第一种可能的实现方式中,所述向服务器端上报所述客户端鼠
标的第一信息之前,还包括:获取客户端鼠标信息记录模块记录的客户端鼠标的上次移动
后的记录信息;比较所述客户端鼠标的上次移动后的记录信息与所述客户端鼠标的第一信
息,当所述客户端鼠标的第一信息相对所述客户端鼠标的上次移动后的记录信息发生变化
时,执行所述向服务器端上报所述客户端鼠标的第一信息的步骤。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式
中,当所述客户端鼠标的第一信息相对所述客户端鼠标的上次移动后的记录信息发生变化
时,还包括:根据所述客户端鼠标的第一信息,更新所述客户端鼠标信息记录模块记录的客
户端鼠标的上次移动后的记录信息。
结合第一方面或者第一方面的第二种可能的实现方式,在第三种可能的实现方式
中,所述根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动之前,还包括:再
次获取客户端鼠标信息记录模块记录的客户端鼠标的上次移动后的记录信息,其中,所述
客户端鼠标的上次移动后的记录信息为所述客户端鼠标的第一信息;比较所述客户端鼠标
的第一信息与所述服务器端鼠标的第二信息,当所述服务器端鼠标的第二信息相对所述客
户端鼠标的第一信息发生变化时,执行根据所述服务器端鼠标的第二信息控制所述客户端
光标再次移动的步骤。
第二方面,还提出了一种鼠标同步的方法,所述鼠标同步包括客户端鼠标与服务
器端鼠标的同步,包括:接收客户端上报的客户端鼠标的第一信息,其中,所述客户端鼠标
的第一信息是用户操作客户端鼠标之后客户端鼠标的实时信息;根据所述客户端鼠标的第
一信息进行鼠标重定向操作;获取服务器端鼠标的第二信息,其中,所述服务器端鼠标的第
二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之后的服务
器端鼠标的实时信息;向所述客户端发送所述服务器端鼠标的第二信息,以使得所述客户
端根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
结合第二方面,在第一种可能的实现方式中,所述根据所述客户端鼠标的第一信
息进行鼠标重定向操作之后,还包括:监测是否发生服务器端鼠标再次移动事件,如果检测
到所述服务器端鼠标再次移动事件,执行所述获取服务器端鼠标的第二信息的步骤。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述监测
是否发生服务器端鼠标再次移动事件,包括:当发生第三方程序调用所述服务器端鼠标控
制接口,并使得所述服务器端鼠标控制接口控制服务器端鼠标再次移动,监测到发生所述
服务器端鼠标再次移动事件。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式
中,所述根据所述客户端鼠标的第一信息进行鼠标重定向操作之前,还包括:获取服务器端
鼠标信息记录模块记录的服务器端鼠标的上次移动后的记录信息;比较所述服务器端鼠标
的上次移动后的记录信息与所述客户端鼠标的第一信息,当所述第一信息相对所述服务器
端鼠标的上次移动后的记录信息发生变化时,执行根据所述客户端鼠标的第一信息进行鼠
标重定向操作的步骤。
结合第二方面或者第二方面的第二种可能的实现方式,在第三种可能的实现方式
中,所述根据所述客户端鼠标的第一信息进行鼠标重定向操作之后,还包括:根据所述客户
端鼠标的第一信息,更新所述服务器端鼠标信息记录模块记录的服务器端鼠标的上次移动
后的记录信息。
结合第二方面或者第二方面的第三种可能的实现方式,在第四种可能的实现方式
中,所述向所述客户端发送所述服务器端鼠标的第二信息之前,还包括:再次获取服务器端
鼠标信息记录模块记录的服务器端鼠标的上次移动后的记录信息,其中,所述服务器端鼠
标的上次移动后的记录信息为所述客户端鼠标的第一信息;比较所述客户端鼠标的第一信
息与所述服务器端鼠标的第二信息,当所述服务器端鼠标的第二信息相对所述客户端鼠标
的第一信息发生变化时,执行向所述客户端发送所述服务器端鼠标的第二信息的步骤。
第三方面,提出了一种用于客户端装置,用于实现客户端鼠标与服务器端鼠标的
同步,包括:第一获取单元,用于获取客户端鼠标的第一信息,其中,所述客户端鼠标的第一
信息是用户操作客户端鼠标之后客户端鼠标的实时信息;客户端鼠标控制单元,用于根据
所述客户端鼠标的第一信息控制客户端光标移动;第一通信单元,用于向服务器端上报所
述客户端鼠标的第一信息,以使得所述服务器端根据所述客户端鼠标的第一信息进行鼠标
重定向操作;所述第一获取单元,还用于接收所述服务器端返回的服务器端鼠标的第二信
息,其中,所述服务器端鼠标的第二信息为所述服务器端根据所述客户端鼠标的第一信息
进行鼠标重定向操作之后的服务器端鼠标的实时信息;所述客户端鼠标控制单元,还用于
根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
第四方面,提出一种服务器,用于实现客户端鼠标与服务器端鼠标的同步,包括:
第二通信单元,用于接收客户端上报的客户端鼠标的第一信息,其中,所述客户端鼠标的第
一信息是用户操作客户端鼠标之后客户端鼠标的实时信息;服务器端鼠标控制单元,用于
根据所述客户端鼠标的第一信息进行鼠标重定向操作;第二获取单元,用于获取服务器端
鼠标的第二信息,其中,所述服务器端鼠标的第二信息为所述服务器端根据所述客户端鼠
标的第一信息进行鼠标重定向操作之后的服务器端鼠标的实时信息;所述第二通信单元,
还用于向所述客户端发送所述服务器端鼠标的第二信息,以使得所述客户端根据所述服务
器端鼠标的第二信息控制所述客户端光标再次移动。
第五方面,提出一种通信系统,所述通信系统包括客户端装置和服务器,用于实现
客户端鼠标与服务器端鼠标的同步,所述客户端装置用于获取客户端鼠标的第一信息,其
中,所述客户端鼠标的第一信息是用户操作客户端鼠标之后客户端鼠标的实时信息,根据
所述客户端鼠标的第一信息控制客户端光标移动,以及向服务器端上报所述客户端鼠标的
第一信息;所述服务器用于接收客户端上报的所述客户端鼠标的第一信息,根据所述客户
端鼠标的第一信息进行鼠标重定向操作,获取服务器端鼠标的第二信息,其中,所述服务器
端鼠标的第二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作
之后的服务器端鼠标的实时信息,以及向所述客户端发送所述服务器端鼠标的第二信息;
所述客户端装置还用于接收所述服务器端返回的所述服务器端鼠标的第二信息,根据所述
服务器端鼠标的第二信息控制所述客户端光标再次移动。
第六方面,提出一种客户端装置,用于实现客户端鼠标与服务器端鼠标的同步,所
述装置包括包括处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,
所述处理器与所述存储器通过所述总线连接,当所述客户端装置运行时,所述处理器执行
所述存储器存储的所述计算机执行指令,以使所述客户端装置执行如上第一方面所述的鼠
标同步的方法。
第七方面,提出一种服务器,用于实现客户端鼠标与服务器端鼠标的同步;所述服
务器包括包括处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所
述处理器与所述存储器通过所述总线连接,当所述客户端装置运行时,所述处理器执行所
述存储器存储的所述计算机执行指令,以使所述服务器执行如上第二方面所述的鼠标同步
的方法。
第八方面,提出一种计算机可读介质,包括计算机执行指令,以供计算机的处理器
执行所述计算机执行指令时,所述计算机执行如上第一方面所述的鼠标同步的方法。
第九方面,提出又一种计算机可读介质,包括计算机执行指令,以供计算机的处理
器执行所述计算机执行指令时,所述计算机执行如上第二方面所述的鼠标同步的方法。
本发明实施例中,服务器端鼠标根据客户端的鼠标信息进行移动之后,服务器端
还能够捕获服务器端最新的鼠标信息,并且将服务器端最新的鼠标信息返回到客户端,使
得客户端在根据本端用户操作进行鼠标移动之后还能够根据服务器端的最新的鼠标信息
再次调整客户端的光标显示,从而保证客户端与服务器鼠标的精准同步,使得用户获得准
确的鼠标信息,保证了某些特殊的程序在桌面云场景下的正常执行,带来客户的良好体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例中所需
要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,
对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得
其他的附图。
图1是根据本发明实施例鼠标同步通信系统的架构示意图;
图2是根据本发明实施例一的鼠标同步方法的流程图;
图3是根据本发明实施例二的鼠标同步方法的流程图;
图4是根据本发明实施例三的鼠标同步方法的流程图;
图5是根据本发明实施例客户端装置的组成示意图;
图6是根据本发明实施例服务器的组成示意图;
图7是根据本发明实施例通信系统的组成示意图;
图8是根据本发明又一实施例客户端装置的组成示意图;
图9是根据本发明又一实施例服务器的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
图1描绘了实施本发明实施例鼠标同步的方法的系统架构的一个示例,该架构描
绘了桌面云的应用场景,桌面云通常由客户端和服务器端组成,客户端的计算机/终端设备
通过访问服务器端的远程计算设备,将远程计算机的桌面传送到客户端的终端设备。图1中
客户端包括普通计算机(101)、平板电脑(102)、智能手机(103),也可以包括瘦终端TC(图未
示),客户端的计算机或者终端设备通过网络(201)使用远程桌面协议(202)访问远程服务
器端。服务器端包括服务器301、302、303....30n,用户的虚拟桌面(Virtual Desktop)以虚
拟机(301a、301b····301n)的形式由服务器301实现,服务器302、303....30n与服务器
301类似。用户通过客户端访问服务器上分配给该用户的虚拟机,该虚拟机将用户访问的内
容传输到用户的客户端进行显示。服务器端还可以包括桌面云管理系统等(图未示),管理
系统可以装载在服务器端的任意服务器上。
本发明实施例中的鼠标同步过程可以在图1所示的桌面云的架构下实施,但是图1
所示的只是其中一种远程桌面场景为桌面云的场景,本实施场景仅是一种示例性说明,图1
所示的各组成也只是给出了与本发明实施例相关的组成部分,并不是对本发明应用的具体
限定。
在图1所示的桌面云的架构下,本发明实施例的鼠标同步的方法的实施例一可以
如图2所示执行,包括:
步骤S201:客户端装置获取客户端鼠标的第一信息,其中,所述客户端鼠标的第一
信息是用户操作客户端鼠标之后客户端鼠标的实时信息;
步骤S202:客户端装置根据所述客户端鼠标的第一信息控制客户端光标移动;
步骤S203:客户端装置向服务器端上报所述客户端鼠标的第一信息;
步骤S204:服务器端接收客户端上报的客户端鼠标的第一信息,根据所述客户端
鼠标的第一信息进行鼠标重定向操作;
步骤S205:获取服务器端鼠标的第二信息,其中,所述服务器端鼠标的第二信息为
所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之后的服务器端鼠标
的实时信息;
步骤S206:向所述客户端发送所述服务器端鼠标的第二信息;
步骤S207:客户端接收所述服务器端返回的服务器端鼠标的第二信息,根据所述
服务器端鼠标的第二信息控制所述客户端光标再次移动。
本发明实施例中,服务器端鼠标根据客户端的鼠标信息进行移动之后,服务器端
还能够捕获服务器端最新的鼠标信息,并且将服务器端最新的鼠标信息返回到客户端,使
得客户端在根据本端用户操作进行鼠标移动之后还能够根据服务器端的最新的鼠标信息
再次调整客户端的光标显示,从而保证客户端与服务器鼠标的精准同步,使得用户获得准
确的鼠标信息,保证了某些特殊的程序在桌面云场景下的正常执行,带来客户的良好体验。
以上实施例可以通过改造客户端装置与服务器的现有功能模块实现本发明实施
例的鼠标同步的方法,也可以通过在客户端装置与服务器中新增功能模块的方式实现本发
明实施例的鼠标同步的方法。以下实施例将以客户端装置和服务器中的鼠标控制应用程序
接口API和键鼠服务模块为例,来描述几个具体实施例。
另外,本发明实施例中的鼠标信息具体可以包括鼠标的位置信息和鼠标的按键状
态信息任意之一或者两者,在以下的具体实施例中将以包含两者为例。
本发明实施例的鼠标同步的方法的实施例二可以如图3所示,包括:
步骤S301:用户移动鼠标,客户端鼠标控制API获取当前客户端鼠标的第一位置信
息和第一按键状态信息;
具体地,客户端鼠标控制API获取的当前客户端鼠标的第一位置信息通过客户端
屏幕x与y坐标信息表示。
步骤S302:客户端鼠标控制API根据获取的客户端鼠标第一位置信息和第一按键
状态信息控制客户端光标移动,以显示给用户;
步骤S303:客户端键鼠服务模块通过事件消息机制获取到所述客户端鼠标第一位
置信息和第一按键状态信息,并通过客户端与服务器端的通信协议将所述客户端鼠标第一
位置信息和第一按键状态信息发送到服务器端;
步骤S304:服务器端键鼠服务模块接收所述客户端鼠标第一位置信息和第一按键
状态信息,调用服务器端鼠标控制API;
步骤S305:服务器端鼠标控制API根据所述客户端鼠标第一位置信息和第一按键
状态信息,进行鼠标重定向操作,即控制服务器端鼠标移动到服务器端鼠标第一位置和服
务器端鼠标第一按键状态;
同时,在本步骤中,服务器端鼠标控制API需要隐藏服务器端的鼠标的光标位置,
以免客户端察觉鼠标移动的延迟;
步骤S306:第三方应用程序调用所述服务器端鼠标控制API,并使得所述服务器端
鼠标控制API控制服务器端鼠标的位置或者按键状态进行改变;
步骤S307:服务器端键鼠服务模块通过事件消息机制获取到所述服务器端鼠标第
二位置信息和第二按键状态信息,第二位置信息和第二按键状态信息为所述服务器端根据
所述客户端鼠标的第一信息进行鼠标重定向操作之后的服务器端鼠标的实时信息;并通过
客户端与服务器端的通信协议将所述服务器端鼠标第二位置信息和第二按键状态信息发
送到客户端;
步骤S308:客户端键鼠服务模块接收所述服务器端鼠标第二位置信息和第二按键
状态信息,调用客户端鼠标控制API;
步骤S309:客户端鼠标控制API根据所述服务器端鼠标第二位置信息和第二按键
状态信息,控制客户端光标移动到第二位置和实现第二按键状态,以显示给用户。
本发明实施例中,服务器端鼠标根据客户端的鼠标位置和按键状态进行移动之
后,服务器端还能够捕获服务器端最新的鼠标位置和按键状态,并且将服务器端最新的鼠
标位置和按键状态返回到客户端,使得客户端能够根据服务器端的最新的鼠标位置和按键
状态调整客户端的光标显示,能够保证客户端与服务器鼠标的精准同步,从而使得用户获
得准确的鼠标位置和按键状态信息,保证了某些特殊的程序在桌面云场景下的正常执行,
带来客户的良好体验。
本发明实施例的鼠标同步的方法的实施例三可以如图4所示,包括:
步骤S401:在客户端和服务器端均设置鼠标信息记录模块,如客户端鼠标信息记
录模块和服务器端鼠标信息记录模块,每端的鼠标信息记录模块用于记录本端鼠标的上次
移动后的记录信息(位置上次移动后的记录信息,按键状态上次移动后的记录信息),当客
户端和服务器端初始启动时,每端的鼠标信息记录模块记录本端鼠标的初始信息(初始位
置信息,初始按键状态信息);
其中,客户端鼠标信息记录模块记录的本端鼠标初始信息与服务器端鼠标信息记
录模块记录的本端鼠标初始信息默认为相同;
步骤S402:用户移动鼠标,客户端鼠标控制API获取当前客户端鼠标的第一信息
(第一位置信息,第一按键状态信息);
具体地,客户端鼠标控制API获取的当前客户端鼠标的第一位置信息通过客户端
屏幕x与y坐标信息表示。
步骤S403:客户端键鼠服务模块通过事件消息机制获取到所述客户端鼠标的信息
(第一位置信息,第一按键状态信息),客户端键鼠服务模块比较当前客户端鼠标信息(第一
位置信息,第一按键状态信息)与客户端鼠标信息记录模块记录的本端鼠标的初始信息(初
始位置信息,初始按键状态信息),如果发生变化,执行步骤S404,如果没有发生变化,客户
端鼠标控制API返回执行步骤S402;
步骤S404:客户端键鼠服务模块根据获取的当前客户端鼠标的第一信息(第一位
置信息,第一按键状态信息)控制客户端光标移动,并显示给用户;
本实施例中,还可以更新客户端鼠标信息记录模块记录的本端鼠标的上次移动后
的记录信息为当前值(第一位置信息,第一按键状态信息);
步骤S405:客户端键鼠服务模块通过客户端与服务器端的通信协议将所述客户端
鼠标的第一信息(第一位置信息,第一按键状态信息)发送到服务器端;
步骤S406:服务器端键鼠服务模块接收所述客户端鼠标的第一信息(第一位置信
息,第一按键状态信息);
步骤S407:服务器端键鼠服务模块比较当前客户端鼠标的第一信息(第一位置信
息,第一按键状态信息)与服务器端鼠标信息记录模块记录的本端鼠标的初始信息(初始位
置信息,初始按键状态信息),如果发生变化,执行步骤S408,如果没有发生变化,则返回执
行步骤S406;
步骤S408:服务器端键鼠服务模块调用服务器端鼠标控制API进行鼠标重定向操
作,即使得所述服务器端鼠标控制API根据所述客户端鼠标第一位置信息和第一按键状态
信息,控制服务器端鼠标移动到服务器端鼠标第一位置和服务器端鼠标第一按键状态;
本实施例中,还可以更新服务器端鼠标信息记录模块记录的本端鼠标的上次移动
后的记录信息为当前值(第一位置信息,第一按键状态信息);
同时,在本步骤中,如果移动服务器端鼠标,服务器端鼠标控制API需要隐藏服务
器端的鼠标的光标位置,以免客户端察觉鼠标移动的延迟;
步骤S409:服务器端键鼠服务模块监测是否发生服务器端鼠标再次移动事件,如
果检测到所述服务器端鼠标再次移动事件,获取服务器端鼠标的第二信息,所述服务器端
鼠标的第二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之
后的服务器端鼠标的实时信息;
若第三方应用程序调用所述服务器端鼠标控制API,并使得所述服务器端鼠标控
制API控制服务器端鼠标的位置或者按键状态进行改变,所述服务器端键鼠服务模块获取
更新后的服务器端鼠标的实时信息,即第二信息(第二位置信息,第二按键状态信息);
步骤S410:服务器端键鼠服务模块比较该更新后的服务器端鼠标的第二信息(第
二位置信息,第二按键状态信息)与服务器端鼠标信息记录模块记录的本端鼠标的上次移
动后的记录信息(第一位置信息和第一按键状态信息),如果发生变化,执行步骤S411,如果
没有发生变化,返回执行步骤S409;
步骤S411:所述服务器端键鼠服务通过客户端与服务器端的通信协议将所述服务
器端鼠标第二位置信息和第二按键状态信息发送到客户端;
步骤S412:客户端键鼠服务模块接收所述服务器端鼠标第二位置信息和第二按键
状态信息,客户端键鼠服务模块比较所述服务器端鼠标的第二信息(第二位置信息,第二按
键状态信息)与客户端鼠标信息记录模块记录的本端鼠标的上次移动后的信息(第一位置
信息,第一按键状态信息),如果发生变化,执行步骤S413;
步骤S413:客户端键鼠服务模块调用客户端鼠标控制API,使得客户端鼠标控制
API根据所述服务器端鼠标第二位置信息和第二按键状态信息,控制客户端光标移动到第
二位置和实现第二按键状态,以显示给用户。
在本发明实施例三中的另一个可以执行的实施例中,当步骤S403或者步骤S410在
进行比较动作之后,若确定发生变化之后,还可以获得发生变化的改变值(或者差值),例
如,获取所述客户端鼠标的第一信息相对所述客户端鼠标的上次移动后的记录信息的改变
值,并在步骤S405或者步骤S411中向对端通知相应的改变值(或者差值),那么相应地,如果
只是向对端传递鼠标信息的改变值或者差值时,对端需要根据本端的鼠标信息记录模块记
录的鼠标信息和所述改变值(或者差值)恢复出当前鼠标信息的真实位置或按键状态信息,
并进行相应地操作。
本发明实施例中,服务器端鼠标根据客户端的鼠标位置和按键状态进行移动之
后,服务器端还能够捕获服务器端最新的鼠标位置和按键状态,并且将服务器端最新的鼠
标位置和按键状态返回到客户端,使得客户端能够根据服务器端的最新的鼠标位置和按键
状态调整客户端的光标显示,能够保证客户端与服务器鼠标的精准同步,从而使得用户获
得准确的鼠标位置和按键状态信息,保证了某些特殊的程序在桌面云场景下的正常执行,
带来客户的良好体验。
同时在本实施例中,由于设置了鼠标信息记录模块,因此本实施例中,只在当前鼠
标的位置信息或者按键状态发生变化时,才向对端通知相应的鼠标位置信息或者按键状态
信息,可以减少鼠标重定向操作的次数,同时减少客户端和服务器端消息的交互,减少带宽
的占用,同时减轻相关设备的负载。
图5为本发明实施例的客户端装置的结构组成示意图,本发明实施例的客户端装
置可以通过瘦终端或者用户移动终端中的硬件实现或者软件组件实现,例如可以通过瘦终
端中的键鼠服务模块实现。
所述客户端装置500,用于实现客户端鼠标与服务器端鼠标的同步,包括:
第一获取单元501,用于获取客户端鼠标的第一信息,其中,所述客户端鼠标的第
一信息是用户操作客户端鼠标之后客户端鼠标的实时信息;
客户端鼠标控制单元502,用于根据所述客户端鼠标的第一信息控制客户端光标
移动;
第一通信单元503,用于向服务器端上报所述客户端鼠标的第一信息,以使得所述
服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作;
所述第一获取单元501,还用于接收所述服务器端返回的服务器端鼠标的第二信
息,其中,所述服务器端鼠标的第二信息为所述服务器端根据所述客户端鼠标的第一信息
进行鼠标重定向操作之后的服务器端鼠标的实时信息;
所述客户端鼠标控制单元502,还用于根据所述服务器端鼠标的第二信息控制所
述客户端光标再次移动。
进一步地,所述客户端装置还可以包括客户端鼠标信息记录模块504,用于保存客
户端鼠标的上次移动后的记录信息;
则,所述第一获取单元501,还用于获取所述客户端鼠标信息记录模块记录的客户
端鼠标的上次移动后的记录信息,比较所述客户端鼠标的上次移动后的记录信息与所述客
户端鼠标的第一信息,当所述客户端鼠标的第一信息相对所述客户端鼠标的上次移动后的
记录信息发生变化时,触发所述第一通信单元503执行所述向服务器端上报所述客户端鼠
标的第一信息。
所述客户端鼠标信息记录模块504,还可以用于根据所述客户端鼠标的第一信息,
更新所述客户端鼠标信息记录模块504记录的客户端鼠标的上次移动后的记录信息。
所述第一获取单元501,还用于再次获取客户端鼠标信息记录模块记录的客户端
鼠标的上次移动后的记录信息,其中,所述客户端鼠标的上次移动后的记录信息为所述客
户端鼠标的第一信息,比较所述客户端鼠标的第一信息与所述服务器端鼠标的第二信息,
当所述服务器端鼠标的第二信息相对所述客户端鼠标的第一信息发生变化时,触发所述客
户端鼠标控制单元502根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
图6为本发明实施例的服务器的结构组成示意图,本发明实施例的服务器可以是
客户端远程登录的远端处理服务器,也可以是桌面云场景/虚拟化场景中提供虚拟机的服
务器,或者提供虚拟机管理的服务器;该服务器实现鼠标同步的功能可以通过硬件实现或
者软件组件实现,例如可以通过安装在服务器中的键鼠服务模块实现。
所述服务器600,用于实现客户端鼠标与服务器端鼠标的同步,包括:
第二通信单元601,用于接收客户端上报的客户端鼠标的第一信息,其中,所述客
户端鼠标的第一信息是用户操作客户端鼠标之后客户端鼠标的实时信息;
服务器端鼠标控制单元602,用于根据所述客户端鼠标的第一信息进行鼠标重定
向操作;
第二获取单元603,用于获取服务器端鼠标的第二信息,其中,所述服务器端鼠标
的第二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之后的
服务器端鼠标的实时信息;
所述第二通信单元601,还用于向所述客户端发送所述服务器端鼠标的第二信息,
以使得所述客户端根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
所述服务器还可以包括服务器端鼠标信息记录模块604,用于保存服务器端鼠标
的上次移动后的记录信息;
则,所述第二获取单元603,还用于获取所述服务器端鼠标信息记录模块保存的服
务器端鼠标的上次移动后的记录信息,比较所述服务器端鼠标的上次移动后的记录信息与
所述客户端鼠标的第一信息,当所述第一信息相对所述服务器端鼠标的上次移动后的记录
信息发生变化时,触发所述服务器端鼠标控制单元602执行根据所述客户端鼠标的第一信
息进行鼠标重定向操作。
所述服务器端鼠标信息记录模块604,还用于将根据所述客户端鼠标的第一信息,
更新所述服务器端鼠标的上次移动后的记录信息。
所述第二获取单元603,在获取服务器端鼠标的第二信息之后,还用于再次获取服
务器端鼠标信息记录模块记录的服务器端鼠标的上次移动后的记录信息,其中,所述服务
器端鼠标的上次移动后的记录信息为所述客户端鼠标的第一信息,比较所述客户端鼠标的
第一信息与所述服务器端鼠标的第二信息,当所述服务器端鼠标的第二信息相对所述客户
端鼠标的第一信息发生变化时,触发所述第二通信单元601向所述客户端发送所述服务器
端鼠标的第二信息。
所述服务器还包括监测单元605,用于监测是否发生服务器端鼠标再次移动事件,
如果检测到所述服务器端鼠标再次移动事件,触发所述第二获取单元603获取服务器端鼠
标的第二信息。
所述监测单元605,具体用于监测是否发生第三方程序调用所述服务器端鼠标控
制接口,并使得所述服务器端鼠标控制接口控制服务器端鼠标再次移动,如果是,确定发生
所述服务器端鼠标再次移动事件。
图7为本发明实施例的通信系统的结构组成示意图,该通信系统700用于客户端远
程登录的远端处理服务器的场景,也可以是用户使用桌面云场景/虚拟化场景,该系统包括
客户端装置701和服务器702,用于实现客户端鼠标与服务器端鼠标的同步;
所述客户端装置701用于获取客户端鼠标的第一信息,其中,所述客户端鼠标的第
一信息是用户操作客户端鼠标之后客户端鼠标的实时信息,根据所述客户端鼠标的第一信
息控制客户端光标移动,以及向服务器端上报所述客户端鼠标的第一信息;
所述服务器702用于接收客户端上报的所述客户端鼠标的第一信息,根据所述客
户端鼠标的第一信息进行鼠标重定向操作,获取服务器端鼠标的第二信息,其中,所述服务
器端鼠标的第二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操
作之后的服务器端鼠标的实时信息,以及向所述客户端发送所述服务器端鼠标的第二信
息;
所述客户端装置701还用于接收所述服务器端返回的所述服务器端鼠标的第二信
息,根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
具体地,该客户端装置701可以包括如图5所示的各功能子模块,服务器702可以包
括如图6所示的各功能子模块,为描述的方便和简洁,上述描述的系统、装置和单元的具体
工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图8为本发明实施例的客户端装置的结构组成示意图。本发明实施例的客户端装
置用于实现客户端鼠标与服务器端鼠标的同步;
该客户端装置可包括:
处理器801、存储器802、系统总线803和通信接口804。处理器801、存储器802和通
信接口804之间通过系统总线803连接并完成相互间的通信。
处理器801可能为单核或多核中央处理单元(Central Processing Unit,CPU),或
者为特定集成电路(Application Specific Integrated Circuit,ASIC),或者为被配置成
实施本发明实施例的一个或多个集成电路。
存储器802可以为高速RAM存储器,也可以为非易失性存储器(non-volatile
memory),例如至少一个磁盘存储器。
存储器802用于存放程序805。具体的,程序805中可以包括程序代码,所述程序代
码包括计算机执行指令。
当虚拟机系统资源管理装置运行时,处理器801运行程序805,以执行以下指令:
获取客户端鼠标的第一信息,其中,所述客户端鼠标的第一信息是用户操作客户
端鼠标之后客户端鼠标的实时信息;
根据所述客户端鼠标的第一信息控制客户端光标移动;
向服务器端上报所述客户端鼠标的第一信息,以使得所述服务器端根据所述客户
端鼠标的第一信息进行鼠标重定向操作;
接收所述服务器端返回的服务器端鼠标的第二信息,其中,所述服务器端鼠标的
第二信息为所述服务器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之后的服
务器端鼠标的实时信息;
根据所述服务器端鼠标的第二信息控制所述客户端光标再次移动。
具体地,本发明实施例中的客户端装置还根据所述指令执行上述图3或4所示的鼠
标同步方法,具体在此不再赘述。
图9为本发明实施例的服务器的结构组成示意图。本发明实施例的服务器用于实
现客户端鼠标与服务器端鼠标的同步;
该服务器可包括:
处理器901、存储器902、系统总线903和通信接口904。处理器901、存储器902和通
信接口904之间通过系统总线803连接并完成相互间的通信。
处理器901可能为单核或多核中央处理单元(Central Processing Unit,CPU),或
者为特定集成电路(Application Specific Integrated Circuit,ASIC),或者为被配置成
实施本发明实施例的一个或多个集成电路。
存储器902可以为高速RAM存储器,也可以为非易失性存储器(non-volatile
memory),例如至少一个磁盘存储器。
存储器902用于存放程序905。具体的,程序905中可以包括程序代码,所述程序代
码包括计算机执行指令。
当虚拟机系统资源管理装置运行时,处理器901运行程序905,以执行以下指令:
接收客户端上报的客户端鼠标的第一信息,其中,所述客户端鼠标的第一信息是
用户操作客户端鼠标之后客户端鼠标的实时信息;
根据所述客户端鼠标的第一信息进行鼠标重定向操作;
获取服务器端鼠标的第二信息,其中,所述服务器端鼠标的第二信息为所述服务
器端根据所述客户端鼠标的第一信息进行鼠标重定向操作之后的服务器端鼠标的实时信
息;
向所述客户端发送所述服务器端鼠标的第二信息,以使得所述客户端根据所述服
务器端鼠标的第二信息控制所述客户端光标再次移动。
具体地,本发明实施例中的服务器还根据所述指令执行上述图3或4所示的鼠标同
步方法,具体在此不再赘述。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式
可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的
可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者
组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,
本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程
序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可
读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者
前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储
器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处
理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图
的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执
行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程
计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框
图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示
出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺
序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单
元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。