CN106790453B - 一种操作请求的执行方法及装置 - Google Patents
一种操作请求的执行方法及装置 Download PDFInfo
- Publication number
- CN106790453B CN106790453B CN201611117246.2A CN201611117246A CN106790453B CN 106790453 B CN106790453 B CN 106790453B CN 201611117246 A CN201611117246 A CN 201611117246A CN 106790453 B CN106790453 B CN 106790453B
- Authority
- CN
- China
- Prior art keywords
- client
- movement
- execute
- server
- default
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种操作请求的执行方法及装置。所述方法包括:检测客户端发出的操作请求;判断所述操作请求是否为预设操作请求;如果是,则获取与所述预设操作请求对应的预设执行动作;在所述客户端中执行所述预设执行动作。该操作请求的执行方法及装置,能够快速执行客户端发出的操作请求,有效降低网络异常所造成的操作请求执行延迟。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种操作请求的执行方法及装置。
背景技术
随着网络技术的发展和各种智能终端的普及,带动了各种客户端的发展。当前主流的客户端运行平台有Windows(微软操作系统)、Android(安卓操作系统)和IOS(苹果公司的移动操作系统),它们均提供了一整套开发本平台上音频播放、图片显示之类的API(应用程序编程接口),为客户端的开发提供了便利。因采用客户端可以足不出户就能处理各种事务,尤其是移动网络下的客户端可以随时随地进行使用,使得客户端吸引了越来越多的用户,覆盖了较为广泛的用户群体。
现有技术中,用户通过客户端进行一次操作的大致流程是:用户通过客户端向服务端发送请求,等待服务端的应答,只有在收到服务端应答消息后,才能执行用户想要进行的操作。基于实际中的网络状况往往很不稳定,在网络状况不佳时,由于网络延迟,在客户端向服务端发送请求和收到服务端应答之间往往需要用户等待可感知的一段时间,从而使得用户感觉到客户端出现卡顿、不流畅等问题,由于用户对于客户端响应速度非常敏感,这些情况会明显降低用户对客户端的好感。
发明内容
本发明提供一种操作请求的执行方法及装置,能够快速执行客户端发出的操作请求,有效降低网络异常所造成的操作请求执行延迟。
一方面,本发明提供一种操作请求的执行方法,包括:
检测客户端发出的操作请求;
判断所述操作请求是否为预设操作请求;
如果是,则获取与所述预设操作请求对应的预设执行动作;
在所述客户端中执行所述预设执行动作。
可选的,在判断出所述操作请求为预设操作请求后,所述方法还包括:
向服务端发送所述预设操作请求,并接收所述服务端返回的操作应答,所述操作应答中包含所述客户端应当执行的动作;
根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新。
可选的,所述根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新,包括:
如果所述客户端应当执行的动作与所述预设执行动作一致,则将所述客户端的本地状态数据更新为执行所述预设执行动作后的状态数据;
如果所述客户端应当执行的动作与所述预设执行动作不一致,则控制所述客户端返回执行所述预设执行动作之前的状态,再执行所述客户端应当执行的动作,并将所述客户端的本地状态数据更新为执行所述客户端应当执行的动作后的状态数据。
可选的,所述在向服务端发送所述预设操作请求后,所述方法包括:
判断是否接收到所述服务端返回的操作应答,所述操作应答中还包含有状态数据同步指令;
如果否,则检测所述客户端是否发出新的预设操作请求;
如果是,则获取与所述新的预设操作请求对应的预设执行动作,并执行与所述新的预设操作请求对应的预设执行动作,直至接收到所述服务端返回的状态数据同步指令为止。
可选的,所述服务端返回的状态数据同步指令中携带有所述客户端的最新状态数据,在接收到所述服务端返回的状态数据同步指令后,所述方法还包括:
获取所述客户端执行完毕最后一次预设执行动作后的状态位置数据;
判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据是否一致;
如果否,则采用差值算法逐步将所述客户端中的状态位置数据与所述同步指令中携带的客户端的最新状态数据更新为一致,并采用所述状态数据同步指令中携带的客户端的最新状态数据更新所述客户端的本地状态数据。
另一方面,本发明提供一种操作请求的执行装置,包括:
第一检测单元,用于检测客户端发出的操作请求;
第一判断单元,用于判断所述操作请求是否为预设操作请求;
第一获取单元,用于在判断所述操作请求为所述预设操作请求后,获取与所述预设操作请求对应的预设执行动作;
第一执行单元,用于在所述客户端中执行所述预设执行动作。
可选的,所述装置还包括:
发送单元,用于在判断出所述操作请求为预设操作请求后,向服务端发送所述预设操作请求;
接收单元,用于接收所述服务端返回的操作应答,所述操作应答中包含所述客户端应当执行的动作;
第一更新单元,用于根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新。
可选的,所述第一更新单元包括:
第一更新模块,用于在所述客户端应当执行的动作与所述预设执行动作一致时,则将所述客户端的本地状态数据更新为执行所述预设执行动作后的状态数据;
第二更新单元,用于在所述客户端应当执行的动作与所述预设执行动作不一致时,控制所述客户端返回执行所述预设执行动作之前的状态后,再执行所述客户端应当执行的动作,并将所述客户端的本地状态数据更新为执行所述客户端应当执行的动作后的状态数据。
可选的,所述装置还包括:
第二判断单元,用于判断是否接收到所述服务端返回的操作应答,所述操作应答中还包含有状态数据同步指令;
第二检测单元,用于在所述第二判断单元判断未接收到所述服务端返回的操作应答后,检测所述客户端是否发出新的预设操作请求;
第二获取单元,用于在所述第二检测单元检测到所述客户端发出新的预设操作请求后,获取与所述新的预设操作请求对应的预设执行动作;
第二执行单元,用于执行与所述新的预设操作请求对应的预设执行动作,直至接收到所述服务端返回的状态数据同步指令为止。
可选的,所述服务端返回的状态数据同步指令中携带有所述客户端的最新状态数据,所述装置还包括:
第三获取单元,用于在接收到所述服务端返回的状态数据同步指令后,获取所述客户端执行完毕最后一次预设执行动作后的状态位置数据;
第三判断单元,用于判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据是否一致;
第二更新单元,用于在所述第三判断单元判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据不一致后,采用差值算法逐步将所述客户端中的状态位置数据与所述同步指令中携带的客户端的最新状态数据更新为一致,并采用所述状态数据同步指令中携带的客户端的最新状态数据更新所述客户端的本地状态数据。一致时,客户端本身已是最新状态数据,无需更新。
本发明实施例提供的操作请求的执行方法及装置,检测客户端发出的操作请求,判断操作请求是否为预设操作请求,并在判断操作请求为预设操作请求后,获取与预设操作请求对应的预设执行动作,在客户端中执行预设执行动作。该方法及装置能够快速执行客户端发出的操作请求,有效降低网络异常所造成的操作请求执行延迟。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的一种操作请求的执行方法的流程图;
图2为本发明实施例提供的一种操作请求的执行装置的框图;
图3为本发明实施例提供的一种客户端与服务端之间的交互情况示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供一种操作请求的执行方法,如图1所示,包括以下步骤S101-S104:
步骤S101:检测客户端发出的操作请求;
步骤S102:判断操作请求是否为预设操作请求;
步骤S103:在步骤S102中判断操作请求为预设操作请求后,获取与预设操作请求对应的预设执行动作;
步骤S104:在客户端中执行预设执行动作。
需要说明的是,本发明实施例提供的操作请求的执行方法,可以运行于目前常见的可以使用网络通信的硬件终端,例如计算机、移动电话、平板电脑、智能电视、智能手表等用户设备上的客户端中。
在本发明实施例中,可以通过预先定义客户端中需要进行加速响应的操作请求(称为:预设操作请求),以及与预设操作请求相对应的预设执行动作,从而在检测到客户端发出预设操作请求后,快速地获取到与预设操作请求对应的预设执行动作,并在客户端执行相应动作,由于不必等待服务端的应答,即可及时地做出响应,执行相应的动作,从而在网络状况不稳定的情况下,能够有效减少客户端延迟,保证客户端的流畅性。
其中,预先定义指在系统(包括客户端和服务端)开发阶段就设计规划好用户对操作客户端进行的操作,以及哪些操作可以进行加速响应和该操作对应的客户端需要立即展现出来的动作,其中,动作可以为需要经过一定时间才能完成的界面变化。以网络平台的扑克牌游戏的出牌操作为例,“出牌”是可以进行加速响应的操作,预先定义用户执行操作“选中自己的手牌且点击出牌按钮”,即“出牌”,对应的动作为“选中的牌张从用户手牌区域飞向打出牌牌池区域”。
在另外一个实施例中,在判断出操作请求为预设操作请求后,上述操作请求的执行方法还包括以下步骤:
向服务端发送预设操作请求,并接收服务端返回的操作应答,操作应答中包含客户端应当执行的动作;
根据客户端应当执行的动作与预设操作动作是否一致,采用不同方式对客户端的本地状态数据进行更新。
在另外一个实施例中,上述步骤根据客户端应当执行的动作与预设操作动作是否一致,采用不同方式对客户端的本地状态数据进行更新,具体包括以下步骤:
如果客户端应当执行的动作与预设执行动作一致,则将客户端的本地状态数据更新为执行预设执行动作后的状态数据;
如果客户端应当执行的动作与预设执行动作不一致,则控制客户端返回执行预设执行动作之前的状态,再执行客户端应当执行的动作,并将客户端的本地状态数据更新为执行客户端应当执行的动作后的状态数据。
在另外一个实施例中,在向服务端发送预设操作请求后,上述操作请求的执行方法还包括:
判断是否接收到服务端返回的操作应答,操作应答中还包含有状态数据同步指令;
如果否,则检测客户端是否发出新的预设操作请求;
如果是,则获取与新的预设操作请求对应的预设执行动作,并执行与新的预设操作请求对应的预设执行动作,直至接收到服务端返回的状态数据同步指令为止。
在本实施例中,在接收到服务端返回状态数据同步指令之前,如果检测到新的预设操作请求,则会执行与该预设操作请求对应的预设执行动作,直到收到服务端返回的状态数据同步指令为止,从而可以在发送预设操作请求后,服务端返回状态数据同步指令之前的这段时间内,反复多次执行预设操作请求。
在另外一个实施例中,上述服务端返回的状态数据同步指令中携带有客户端的最新状态数据,在接收到服务端返回的状态数据同步指令后,上述操作请求的执行方法还包括:
获取客户端执行完毕最后一次预设执行动作后的状态位置数据;
判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据是否一致;
如果否,则采用差值算法逐步将所述客户端中的状态位置数据与所述同步指令中携带的客户端的最新状态数据更新为一致,并采用所述状态数据同步指令中携带的客户端的最新状态数据更新所述客户端的本地状态数据。
如果是,则客户端本身已是最新状态数据,无需更新。
本发明实施例提供的操作请求的执行方法,检测客户端发出的操作请求,判断操作请求是否为预设操作请求,并在判断操作请求为预设操作请求后,获取与预设操作请求对应的预设执行动作,在客户端中执行预设执行动作。该方法能够快速执行客户端发出的操作请求,有效降低网络异常所造成的操作请求执行延迟。
以下对本发明一个实施例提供的操作请求执行过程中涉及的内容进行详细说明。
本发明实施例通过预定义可以进行加速响应的操作和操作对应的动作,根据客户端当前的数据状态,显示用户可以选择进行的操作,用户选择某项可以进行加速响应的操作后,客户端向服务端发送操作请求并同时执行操作,服务端应答后校验,然后更新客户端数据状态,在网络不稳定情况下,可以较好地提高客户端的响应速度。本发明实施例提供的操作请求的执行方法,主要包括以下步骤:
步骤S201:预定义可以进行加速响应的操作和操作对应的动作。
步骤S202:客户端检测当前数据状态,显示用户可以操作的组件。可以通过客户端检测当前数据状态,显示用户可以操作的组件。客户端根据当前状态机中的状态,通过界面变化提示用户可以进行的操作。如果当前客户端状态机里数据状态是轮到当前用户自己的可行动状态,则客户端的MVC(模型-视图-控制器)结构中的controller(控制器)模块通知view(视图)模块使自己的手牌组件处于可以选择提起状态,并且显示出“出牌”按钮。
步骤S203:客户端检测到用户选择了某个按钮,要进可加速响应的操作。客户端的触摸操作监听模块检测到用户点击了某个区域,该模块就反馈给对应区域的组件模块,组件模块根据预定义的点击事件函数,修改自身的显示状态,比如牌张被提起;接着,触摸操作监听模块根据相同的规则,检测到用户点击了“出牌”按钮。
步骤S204:客户端在向服务端发送操作请求,同时执行相应动作。客户端与服务端之间一直维持着网络连接,比如socket(套接字,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信)连接,具体可参见图3所述的客户端和服务端之间的交互情况示意图,通过此连接,客服端向服务端发送当前要进行的操作的网络请求。接着,客户端立刻执行当前操作对应的预定义动作,即以界面变化展现出此操作的效果,可以让用户直观感觉到自己刚才进行的网络操作,在操作的同时就被客户端执行了,所以用户感受不到网络通信耗时或者网络延迟的存在。以扑克牌游戏客户端为例:客户端根据“出牌”按钮预先定义的功能。先通过网络连接向服务端发送执行打出选中牌张的请求,接着客户端根据预先定义的对应动作,把选中的牌张旋转,缩放已调整角度,同时每帧移动一定像素从自己的手牌区域“飞”到打出牌牌池区域,到达目的地后,调整牌张组件资源为适合显示在牌池中的资源,完成出牌操作预定义的动作。
步骤S205:客户端检测收到服务端应答。服务端在对客户端的请求进行校验处理之后,把操作结果,即操作的应答消息,通过网络连接发送给客户端,客户端网络监听模块在服务端有应答时通知客户端controller模块。服务端发送应答消息到客户端检测到此应答需要一定时间,而完成预定义的一系列动作也需要经过一定的时间,此预定义动作的完成需要的时间在网络不稳定、有延迟的情况下也可以基本容许网络消息交互完成,即等待到服务端返回应答消息。
步骤S206:客户端比较已进行的操作与服务端返回的操作结果是否一致。客户端解析网络消息内容,根据消息内容判断服务端返回的操作结果中携带的牌张数据,和已进行操作的被打出的牌张数据是否一致,判断是否允许进行打出此次选择的牌张。
步骤S207:如果一致,则更新客户端状态数据。因为客户端发送的请求都是根据客户端当前状态,允许发送的请求,正常情况下客户端判断的结果是服务端返回的打出的牌张的数据与已经进行的打出牌张的操作一致,则更新客户端手牌数据和打出牌张数据。如果不一致,则执行服务端返回的结果,同步客户端本地数据状态跟服务端一致,即如果客户端判断出服务端返回的打出的牌张的数据与已经进行的打出牌张的操作不一致,则客户端需要回滚之前操作的数据,根据服务端返回的打出牌数据更新客户端手牌数据和打出牌张数据,然后根据数据修改打出牌牌池中的牌张组件和手牌中牌张组件,使客户端本地数据与服务端数据保持一致。
如图3所示,为本发明实施例提供的一种客户端与服务端之间的交互情况的示意图,一个交互过程主要包括以下步骤S301-步骤S304:
步骤S301:客户端通过网络连接到服务端,请求初始化客户端此次连接的数据状态。
步骤S302:服务端初始化数据状态完成后,通知客户端完成初始化,此时服务端拥有客户端的所有数据状态信息。
S303用户操作客户端,执行了预定义的可以加速响应的操作,客户端向服务端发送操作请求,同时本地立即执行操作。
S304服务端在收到客户端请求时,根据客户端此时的状态,判断发送请求的用户是否处于可操作状态,因为客户端的数据状态是与服务端同步的,正常的客户端一般发送的都是合法请求,即请求的操作是跟服务端端允许的操作是一致的。服务端确认客户端此时能进行请求的操作时,请求合法,服务端执行对应用户的请求操作,即把此用户的数据状态修改为执行操作后的状态,接着,回复一条包含用户操作结果以的应答消息给客户端,完成本次加速操作请求。
在本发明的另外一个实施例中,客户端在某种状态下可以一直进行某种可加速响应的操作,通过预定义此操作和此操作所对应的动作,用户选择此操作后,客户端向服务端发送操作请求的同时执行操作请求所对应的动作,服务端按一定时间间隔下发用户的数据状态。为保证服务端和客户端不会发生较大偏离,此时间间隔不能过长,比如可以为100ms。此时间间隔内用户可以继续进行操作、发送请求、执行操作,客户端只需在服务端下发用户状态数据时同步到本地即可,此方案可以在网络不稳定情况下较好的提高客户端响应速度,本实施例实现过程可以包括以下步骤:
步骤S401:预先定义可以进行加速响应的操作和操作对应的动作。动作应为需要经过一定时间才能完成界面变化。以移动网络下运行的角色扮演游戏中用户操作的游戏角色在持续的奔跑中改变奔跑方向的操作为例,需要预先定义用户执行操作“按压并移动虚拟摇杆”时客户端执行动作”更改用户角色奔跑方向为朝向摇杆移动方向进行”。
步骤S402:客户端检测到用户进行某种预定义的可加速响应的操作。客户端的触摸操作监听模块检测到用户点击了某个区域,该模块就反馈给对应区域的组件模块,组件模块根据预定义的点击事件函数,修改自身的显示状态,比如用户执行操作“按压并移动虚拟摇杆”时,就会执行该操作预先绑定的功能函数。
步骤S403:客户端向服务端发送操作请求,同时执行操作的动作。客户端根据“虚拟摇杆”操作组件预先定义的功能,首先通过网络连接向服务端发送执行用户角色朝向摇杆移动方向进行移动的请求,接着客户端根据预先定义的对应动作,立刻修改用户角色的奔跑朝向摇杆移动方向进行。
步骤S404:客户端是否收到服务端状态同步消息。检查客户端检测消息队列,判断是否收到了服务端返回的同步用户角色位置信息的应答消息。
步骤S405:客户端收到服务端返回同步角色位置数据的应答消息。客户端解析网络消息内容,根据消息内容判断服务端返回的操作结果中携带的用户角色新的位置数据,和已进行操作的用户角色移动的位置进行比较。如果两个位置数据有偏差,则用插值算法,使本地的位置数据渐进的达到与服务端返回的位置数据相同,同时更新本地位置数据并保存;如果没有偏差,则客户端本地数据状态已是最新,无需额外处理。
步骤S406:客服端暂时没有收到服务端返回同步角色位置数据的应答消息。客户端继续检查用户是否进行了新的可加速响应的操作。如果进行了新的可加速响应操作,则重新执行步骤S402-S404。
以上两种实施例是较为常用的两种实现方式,仅为示例性说明本发明的技术方案,并不用于对本发明技术方案进行限制,在实际使用过程中,可以根据交互的需要,对本实施方式的预定义可加速响应的操作和操作对应的持续动作,以及服务端应答的应对方式等处理进行各种变形。
例如,可以预定义网络麻将游戏客户端中的操作,点击“杠”按钮是可以加速响应的操作,根据当前可以进行的第一个杠牌类型,比如是“明杠”,则发送对应的杠牌类型的请求消息到服务端,同时执行动作“播放自己的三张牌以及别人打出的一张牌飞向牌桌中间,显示杠牌字样和相关特效,然后飞回到自己吃碰杠牌区域”,如此,则即使网络不稳定用户也感觉自己进行的操作立刻被执行了,保证了客户端的流畅性。
又例如,可以预定义移动网络角色扮演游戏客户端中,用户的角色处于飞行状态时,“滑动摇杆键到某个方向”是可以加速响应的操作,客户端检测到用户执行此操作则向服务端发送更改移动方向的消息,同时立即修改本地客户端中用户角色朝向新的移动方向移动。
根据实际需要,可以定义多种预设操作请求与预设执行动作之间的对应关系,并进行存储,当检测到发出预设操作请求后,在满足相应条件的情况下,可以及时执行相应的预设执行动作,从而保证客户端的响应速度。
本发明实施例另外提供一种操作请求的执行装置,如图2所示,包括:
第一检测单元201,用于检测客户端发出的操作请求;
第一判断单元202,用于判断操作请求是否为预设操作请求;
第一获取单元203,用于在判断操作请求为预设操作请求后,获取与预设操作请求对应的预设执行动作;
第一执行单元204,用于在客户端中执行预设执行动作。
可选的,上述操作请求的执行装置还包括:
发送单元,用于在判断出操作请求为预设操作请求后,向服务端发送预设操作请求;
接收单元,用于接收服务端返回的操作应答,操作应答中包含客户端应当执行的动作;
第一更新单元,用于根据客户端应当执行的动作与预设操作动作是否一致,采用不同方式对客户端的本地状态数据进行更新。
可选的,上述第一更新单元包括:
第一更新模块,用于在客户端应当执行的动作与预设执行动作一致时,则将客户端的本地状态数据更新为执行预设执行动作后的状态数据;
第二更新单元,用于在客户端应当执行的动作与预设执行动作不一致时,控制客户端返回执行预设执行动作之前的状态后,再执行客户端应当执行的动作,并将客户端的本地状态数据更新为执行客户端应当执行的动作后的状态数据。
可选的,上述操作请求的执行装置还包括:
第二判断单元,用于判断是否接收到服务端返回的操作应答,操作应答中还包含有状态数据同步指令;
第二检测单元,用于在第二判断单元判断未接收到服务端返回的操作应答后,检测客户端是否发出新的预设操作请求;
第二获取单元,用于在第二检测单元检测到客户端发出新的预设操作请求后,获取与新的预设操作请求对应的预设执行动作;
第二执行单元,用于执行与新的预设操作请求对应的预设执行动作,直至接收到服务端返回的状态数据同步指令为止。
可选的,服务端返回的状态数据同步指令中携带有客户端的最新状态数据,上述操作请求的执行装置还包括:
第三获取单元,用于在接收到服务端返回的状态数据同步指令后,获取客户端执行完毕最后一次预设执行动作后的状态位置数据;
第三判断单元,用于判断客户端执行完毕最后一次预设执行动作后的状态位置数据与同步指令中携带的客户端的最新状态数据是否一致;
第二更新单元,用于在第三判断单元判断客户端执行完毕最后一次预设执行动作后的状态位置数据与同步指令中携带的客户端的最新状态数据不一致后,采用差值算法逐步将客户端中的状态位置数据与同步指令中携带的客户端的最新状态数据更新为一致,并采用状态数据同步指令中携带的客户端的最新状态数据更新客户端的本地状态数据。在第三判断单元判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据一致时,客户端本身已是最新状态数据,无需更新。
本发明实施例提供的操作请求的执行装置,检测客户端发出的操作请求,判断操作请求是否为预设操作请求,并在判断操作请求为预设操作请求后,获取与预设操作请求对应的预设执行动作,在客户端中执行预设执行动作。该装置能够快速执行客户端发出的操作请求,有效降低网络异常所造成的操作请求执行延迟。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种操作请求的执行方法,其特征在于,包括:
检测客户端发出的操作请求;
判断所述操作请求是否为预设操作请求;
如果是,则获取与所述预设操作请求对应的预设执行动作;
在所述客户端中执行所述预设执行动作;
在判断出所述操作请求为预设操作请求后,所述方法还包括:
向服务端发送所述预设操作请求,并接收所述服务端返回的操作应答,所述操作应答中包含所述客户端应当执行的动作;
根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新;
所述根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新,包括:
如果所述客户端应当执行的动作与所述预设执行动作一致,则将所述客户端的本地状态数据更新为执行所述预设执行动作后的状态数据;
如果所述客户端应当执行的动作与所述预设执行动作不一致,则控制所述客户端返回执行所述预设执行动作之前的状态,再执行所述客户端应当执行的动作,并将所述客户端的本地状态数据更新为执行所述客户端应当执行的动作后的状态数据。
2.根据权利要求1所述的方法,其特征在于,所述在向服务端发送所述预设操作请求后,所述方法包括:
判断是否接收到所述服务端返回的操作应答,所述操作应答中还包含有状态数据同步指令;
如果否,则检测所述客户端是否发出新的预设操作请求;
如果是,则获取与所述新的预设操作请求对应的预设执行动作,并执行与所述新的预设操作请求对应的预设执行动作,直至接收到所述服务端返回的状态数据同步指令为止。
3.根据权利要求2所述的方法,其特征在于,所述服务端返回的状态数据同步指令中携带有所述客户端的最新状态数据,在接收到所述服务端返回的状态数据同步指令后,所述方法还包括:
获取所述客户端执行完毕最后一次预设执行动作后的状态位置数据;
判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据是否一致;
如果否,则采用差值算法逐步将所述客户端中的状态位置数据与所述同步指令中携带的客户端的最新状态数据更新为一致,并采用所述状态数据同步指令中携带的客户端的最新状态数据更新所述客户端的本地状态数据。
4.一种操作请求的执行装置,其特征在于,包括:
第一检测单元,用于检测客户端发出的操作请求;
第一判断单元,用于判断所述操作请求是否为预设操作请求;
第一获取单元,用于在判断所述操作请求为所述预设操作请求后,获取与所述预设操作请求对应的预设执行动作;
第一执行单元,用于在所述客户端中执行所述预设执行动作;
发送单元,用于在判断出所述操作请求为预设操作请求后,向服务端发送所述预设操作请求;
接收单元,用于接收所述服务端返回的操作应答,所述操作应答中包含所述客户端应当执行的动作;
第一更新单元,用于根据所述客户端应当执行的动作与所述预设操作动作是否一致,采用不同方式对所述客户端的本地状态数据进行更新;
所述第一更新单元包括:
第一更新模块,用于在所述客户端应当执行的动作与所述预设执行动作一致时,则将所述客户端的本地状态数据更新为执行所述预设执行动作后的状态数据;
第二更新单元,用于在所述客户端应当执行的动作与所述预设执行动作不一致时,控制所述客户端返回执行所述预设执行动作之前的状态后,再执行所述客户端应当执行的动作,并将所述客户端的本地状态数据更新为执行所述客户端应当执行的动作后的状态数据。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二判断单元,用于判断是否接收到所述服务端返回的操作应答,所述操作应答中还包含有状态数据同步指令;
第二检测单元,用于在所述第二判断单元判断未接收到所述服务端返回的操作应答后,检测所述客户端是否发出新的预设操作请求;
第二获取单元,用于在所述第二检测单元检测到所述客户端发出新的预设操作请求后,获取与所述新的预设操作请求对应的预设执行动作;
第二执行单元,用于执行与所述新的预设操作请求对应的预设执行动作,直至接收到所述服务端返回的状态数据同步指令为止。
6.根据权利要求5所述的装置,其特征在于,所述服务端返回的状态数据同步指令中携带有所述客户端的最新状态数据,所述装置还包括:
第三获取单元,用于在接收到所述服务端返回的状态数据同步指令后,获取所述客户端执行完毕最后一次预设执行动作后的状态位置数据;
第三判断单元,用于判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据是否一致;
第二更新单元,用于在所述第三判断单元判断所述客户端执行完毕最后一次预设执行动作后的状态位置数据与所述同步指令中携带的客户端的最新状态数据不一致后,采用差值算法逐步将所述客户端中的状态位置数据与所述同步指令中携带的客户端的最新状态数据更新为一致,并采用所述状态数据同步指令中携带的客户端的最新状态数据更新所述客户端的本地状态数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611117246.2A CN106790453B (zh) | 2016-12-07 | 2016-12-07 | 一种操作请求的执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611117246.2A CN106790453B (zh) | 2016-12-07 | 2016-12-07 | 一种操作请求的执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790453A CN106790453A (zh) | 2017-05-31 |
CN106790453B true CN106790453B (zh) | 2019-08-02 |
Family
ID=58881278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611117246.2A Active CN106790453B (zh) | 2016-12-07 | 2016-12-07 | 一种操作请求的执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790453B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682389B (zh) * | 2017-07-24 | 2020-02-14 | 平安科技(深圳)有限公司 | 一种执行网络请求的方法、终端及计算机可读存储介质 |
CN108310765B (zh) * | 2017-12-14 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 图像的显示方法和装置、存储介质、电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841563A (zh) * | 2010-04-16 | 2010-09-22 | 上海亚图软件有限公司 | 服务器控制的基于p2p网游同步方法 |
CN103164412A (zh) * | 2011-12-09 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 通过图形编码访问网络信息的方法、客户端装置及服务器 |
CN104205016A (zh) * | 2014-02-27 | 2014-12-10 | 华为终端有限公司 | 一种拍照方法及移动终端 |
CN104283956A (zh) * | 2014-09-30 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 强一致性分布式数据存储方法、装置及系统 |
CN105183325A (zh) * | 2015-10-27 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种自定义输入法及系统 |
CN105893818A (zh) * | 2016-03-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种身份识别与交互操作的方法及装置 |
CN106055470A (zh) * | 2016-05-19 | 2016-10-26 | 网易(杭州)网络有限公司 | 游戏程序的性能测试方法、装置及系统 |
-
2016
- 2016-12-07 CN CN201611117246.2A patent/CN106790453B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841563A (zh) * | 2010-04-16 | 2010-09-22 | 上海亚图软件有限公司 | 服务器控制的基于p2p网游同步方法 |
CN103164412A (zh) * | 2011-12-09 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 通过图形编码访问网络信息的方法、客户端装置及服务器 |
CN104205016A (zh) * | 2014-02-27 | 2014-12-10 | 华为终端有限公司 | 一种拍照方法及移动终端 |
CN104283956A (zh) * | 2014-09-30 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 强一致性分布式数据存储方法、装置及系统 |
CN105183325A (zh) * | 2015-10-27 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种自定义输入法及系统 |
CN105893818A (zh) * | 2016-03-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种身份识别与交互操作的方法及装置 |
CN106055470A (zh) * | 2016-05-19 | 2016-10-26 | 网易(杭州)网络有限公司 | 游戏程序的性能测试方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106790453A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756787B (zh) | 虚拟礼物的生成方法、装置及虚拟礼物的赠送系统 | |
CN105630587B (zh) | 应用程序数据在终端之间迁移的方法、装置及系统 | |
US9258380B2 (en) | Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product | |
EP3379398A1 (en) | Method and device for displaying icons | |
US20170171270A1 (en) | Method and electronic device for controlling video playing | |
US9437158B2 (en) | Electronic device for controlling multi-display and display control method thereof | |
CN106802762B (zh) | 在虚拟会话中同步服务器侧键盘布局与客户端侧布局 | |
CN104854574A (zh) | 在实时通信和共享体验会话期间更新服务 | |
CN102404140A (zh) | 一种分布式服务器的控制方法、装置和系统 | |
CN111672132B (zh) | 游戏的控制方法、控制装置、服务器和存储介质 | |
US20170003835A1 (en) | State-specific ordering in collaboration services | |
CN106790453B (zh) | 一种操作请求的执行方法及装置 | |
CN111880845A (zh) | 控制目标应用的方法、系统及装置 | |
CN114743422B (zh) | 一种答题方法及装置和电子设备 | |
US20140317285A1 (en) | Information processing system | |
CN105903191B (zh) | 跨终端的数据处理方法及系统 | |
US11010539B2 (en) | State-specific commands in collaboration services | |
CN102662467B (zh) | 远程协助过程中的指令控制方法及装置 | |
CN112614049A (zh) | 图像处理方法、装置、存储介质以及终端 | |
CN104252232B (zh) | 远程协助过程中的指令控制方法及装置 | |
CN111176596B (zh) | 一种图像显示区域切换方法、装置、存储介质及电子设备 | |
CN112999662A (zh) | 游戏角色切换方法、装置及电子设备 | |
CN109144450B (zh) | 一种远程操作控制方法、移动终端及存储介质 | |
US20140256448A1 (en) | Fortunetelling-related information processing system, method and computer program product thereof, and cloud server | |
CN116156234B (zh) | 基于无线投屏的反向控制方法、装置及无线投屏系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |