CN105471911A - 增强网络手游游戏稳定性的方法及系统 - Google Patents
增强网络手游游戏稳定性的方法及系统 Download PDFInfo
- Publication number
- CN105471911A CN105471911A CN201511033666.8A CN201511033666A CN105471911A CN 105471911 A CN105471911 A CN 105471911A CN 201511033666 A CN201511033666 A CN 201511033666A CN 105471911 A CN105471911 A CN 105471911A
- Authority
- CN
- China
- Prior art keywords
- service end
- client
- data
- module
- packet
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- 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/131—Protocols for games, networked simulations or virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种增强网络手游游戏稳定性的方法及系统,该方法包括以下步骤:客户端获取并存储游戏的初始数据;客户端根据初始数据及操作指令本地处理游戏逻辑,产生操作结果;客户端将操作结果反馈至玩家,同时发送至服务端验证;客户端根据服务端的验证反馈判断是否重载游戏数据。相对于现有技术,本发明增强网络手游游戏稳定性的方法有效地减少了客户端与服务端之间的交互,减小网络环境对游戏的影响,降低网络流量并增强游戏稳定性和流畅性。
Description
技术领域
本发明涉及网络手游技术领域,具体涉及一种增强网络手游游戏稳定性的方法及系统。
背景技术
目前,C/S模式的手游网络游戏存在以下缺陷:
(1)请参阅图1,当客户端需要数据时,需要向服务端请求数据,然后由服务端判定客户端合法后再将数据发送至客户端,则接收到数据的客户端即可对得到的数据进行显示或处理等操作,由此C/S共两次数据包。当网络环境较为恶劣时(例如其它终端占用大量宽带或者客户端处于3G模式等),以游戏客户端需要进行金币的采集为例说明,在向服务端请求数据后,由于网络环境恶劣的原因,客户端会一直处于等待服务端回应的状态,无论用户怎么操作都没反应。由此这类实时性要求不高的操作的逻辑都需要等待服务端的回应,不仅影响了游戏的流畅性和稳定性,而且会对服务端造成较大的负担,同时,频繁来回的数据交互必会需要较多网络流量,造成3G环境的客户端的网络流量代价偏高;
(2)只要客户端和服务端的连接断开,玩家就会立即登出游戏,且客户端会提示玩家重新登录。当网络环境较为恶劣时,很容易造成玩家断线登出游戏,严重时会造成玩家频繁断线,请参阅图2,此时客户端需要不停地向服务端重新请求连接,严重的影响了玩家的游戏体验;
(3)C/S在数据交互期间,如果突然断线,重连以后,客户端无法得知刚刚发送的一堆数据包中,哪些数据包已被服务端接受完整,哪些数据包是发送失败的。请参阅图3,如果客户端连续发了A、B、C、D四个数据包,服务端顺序解压数据包,当解压到B数据包时,网络断开了,B数据包还没接收完毕,则会丢失B数据包。虽然客户端已经发送了4个数据包,但实际上服务端只接受到1个数据包,而在客户端重新与服务端连接后,是无法得知服务端成功接收了哪些数据包。为解决该问题,现有技术一般是通过收包反馈,也即,客户端在每个数据包上打上标记,发送后,服务端反馈这个数据包是否接收完成,让客户端知道某个数据包是收发完整的。但是,会导致每个数据包都需要增设一反馈包,不仅增大了服务端的负担,而且还增大了网络流量。
发明内容
本发明的目的是为了解决上述现有技术的缺点和不足,提供一种增强网络手游游戏稳定性的方法及系统,减少客户端与服务端之间的交互,减小网络环境对游戏的影响,降低网络流量并增强游戏稳定性和流畅性。
一种增强网络手游游戏稳定性的方法,包括以下步骤:
客户端获取并存储游戏的初始数据;
客户端根据初始数据及操作指令本地处理游戏逻辑,产生操作结果;
客户端将操作结果反馈至玩家,同时发送至服务端验证;
客户端根据服务端的验证反馈判断是否重载游戏数据。
通过上述技术方案,使得客户端在已经获取到游戏初始数据的前提下,能够自己处理可以在本地处理的逻辑,包括计算收益数值和定时获取的奖励,处理战斗人物行为和计算战斗伤害等等,由此实现了游戏中的很多玩法否是可以由客户端在本地运营中实现的,从而不需要依靠网络即可以极快的速度产生结果并反馈至玩家。由此减少了客户端与服务端的交互,在游戏内的大部分操作都不会因为网络不通畅而长时间等待,游戏逻辑能够正常地执行下去,玩家也不会应为过多或过久的等待而影响游戏体验,并有利于节省了玩家的网络流量和减轻了服务端的负担。同时将操作结果发送至服务端验证,并使得唯有服务端验证得到操作结果非法时才会告知客户端需要重载游戏数据,由此进一步节省了网络流量。因此,相对于现有技术,本发明增强网络手游游戏稳定性的方法有效地减少了客户端与服务端之间的交互,减小网络环境对游戏的影响,降低网络流量并增强游戏稳定性和流畅性。
作为进一步改进,所述步骤客户端根据服务端的验证反馈判断是否重载数据,包括:
当客户端接收不到服务端的任何反馈时,操作结果合法,客户端不重载游戏数据;
当客户端接收到服务端的异常反馈时,操作结果非法,客户端重载游戏数据。
由此进一步减少了客户端与服务端之间的交互,有利于进一步降低网络流量。
作为进一步改进,本发明增强网络手游游戏稳定性的方法还包括步骤:
于客户端中构建逻辑层;
客户端启动游戏时同时启动逻辑层,并初始化逻辑层中的数据;
客户端通过逻辑层向服务端请求数据,如果逻辑层中存在相关的数据,则客户端接收由逻辑层直接返回的数据;否则,客户端接收由逻辑层从服务端中下载得到的相关数据。
通过逻辑层的构建及作用,相当于在客户端中内置了一个小型的服务端,使逻辑层完成服务端的部分工作,从而分担了服务端的压力,同时避免了网络因素对客户端请求数据响应的速度,有利于加快了响应速度,进一步优化通信和降低网络流量。
作为进一步改进,所述逻辑层对服务端发送的数据进行缓存,并根据服务端发送的新的数据更新其自身的本地缓存数据。此处有利于保证逻辑层中缓存数据的实时性和有效性,以进一步满足对客户端请求的数据的响应。
作为进一步改进,客户端再次通过逻辑层向服务端请求数据时,逻辑层对其缓存数据进行压缩处理,并将压缩后的数据发送至服务端验证;且逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端。通过逻辑层对本身的数据进行压缩,从而压缩了客户端与服务端之间的通信数据,由此在较大程度上进一步减少了用户的流量消耗。
作为进一步改进,所述步骤逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端具体包括以下步骤:
如果服务端返回缓存数据非法的验证结果至逻辑层,则逻辑层根据服务端中的数据更新缓存数据;
如果服务端返回缓存数据合法的验证结果至逻辑层,则逻辑层将其缓存数据返回至客户端。
作为进一步改进,本发明增强网络手游游戏稳定性的方法还包括以下步骤:
逻辑层接收由产生触发事件的服务端所发送的随机因子,并根据随机因子执行服务端所需的运算,生成相应的任务;
逻辑层将生成的任务发送至客户端,由客户端执行并响应。
通过逻辑层根据服务端中的触发事件的随机因子生产相应的任务并告知客户端执行响应,实现了逻辑层对服务端运算的分散,进一步减轻了服务端的负担。
作为进一步改进,逻辑层生成相应的任务后,还通过服务端对其生成的任务进行取样验证。通过此处设置,有利于确保了逻辑层运算的正确性。
作为进一步改进,本发明增强网络手游游戏稳定性的方法还包括以下步骤:
客户端将数据包发送至服务端前,依照先后顺序依次对每个数据包进行编号;
编号完毕,客户端发送数据包至服务端;
服务端接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;
服务端与客户端断线重连,且服务端还未完全接收到客户端发送的所有数据包时,服务端将最后接收到的完整的数据包的编号发送至客户端;
客户端接根据服务端发送的编号,从编号为服务端发送的编号+1的数据包开始继续将未发送的数据包发送至服务端。
通过上述对数据包编号并在断线重连时服务端将接收到的最后一个完整的数据包的编号返回至客户端,使得客户端能够清楚知道服务端从哪个数据包开始就没有再接收数据包,从而不需要重发一次所有的数据包即可实现对数据包的续发,也不需要通过反馈包的方式就可以正确地知道接着要向服务端发的数据包,不仅不会导致数据包的重发和漏发,而且还进一步减少了网络流量的耗费。
作为进一步改进,每个数据包的编号均为一个2字节的编号,且编号的顺序从0x1开始至0xffff,且客户端所缓存的数据包的个数小于0xffff。此处设置有利于避免因数据包编号重复而导致的混乱。
作为进一步改进,当客户端与服务端之间的网络连接断开后,继续由客户端对玩家的操作指令进行处理并响应,产生并缓存处理结果,同时在后台不断尝试重新连接服务端。此处设置进一步保证了在网络环境不好的情况下,游戏仍然能正常的进行,处于一个稳定且流畅的状态。
作为进一步改进,当客户端在后台成功连接服务端时,发送处理结果至服务端验证。通过此处设置,有利于纠正断线时因无法及时实现数据更具而造成的一些运算误差,进一步保证了处理结果的准确性。
相应地,本发明还提供了能够实现上述增强网络手游游戏稳定性的方法的一种增强网络手游游戏稳定性的系统,其包括客户端和服务端;
所述客户端包括
数据存储模块,用于获取并存储游戏的初始数据;
指令接收模块,用于接收玩家的操作指令;
逻辑处理模块,用于根据初始数据及操作指令于本地处理游戏逻辑,并产生操作结果;
反馈模块,用于将操作结果反馈至玩家并发送至服务端;
以及重载模块,用于根据服务端的验证反馈判断是否重载游戏数据;
所述服务端包括
验证模块,用于接收所述操作结果,并验证所述操作结果是否合法;如果验证得到操作结果合法,则不执行任何操作;否则,发送操作结果非法的异常反馈至客户端的重载模块,命令重载模块执行重载游戏数据的操作。
作为进一步改进,所述客户端还包括
逻辑层模块,用于构建并保存逻辑层;
启动控制模块,用于启动游戏时同时启动逻辑层模块中的逻辑层,并初始化逻辑层中的数据;
数据请求模块,用于通过逻辑层模块中的逻辑层向服务端请求数据;
以及数据判断模块,用于判断逻辑层模块中的逻辑层中是否存在与数据请求模块请求的数据相关的数据,如果存在,则发送一直接发送指令至逻辑层模块,此时数据请求模块将接收由逻辑层模块直接返回的数据;否则,则发送一下载指令至逻辑层模块,此时逻辑层模块中的逻辑层将从服务端中下载得到的相关数据。
作为进一步改进,所述客户端还包括
编号模块,用于依照先后顺序依次对每个数据包进行编号,并在编号完毕后发送一许可指令至数据包发送模块;
数据包发送模块,用于在接收到由编号模块发送的许可指令后,将数据包发送至服务端;
所述服务端还包括
数据包接收模块,用于接收数据包,并在接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;并用于在其与数据包发送模块断线重连后,且其还未完全接收到所有数据包时,将最后接收到的完整的数据包的编号发送至数据包发送模块,此时数据包发送模块将根据数据包接收模块发送的编号,从编号为数据包接收模块发送的编号+1的数据包开始继续将未发送的数据包发送至数据包接收模块。
由于本发明的增强网络手游游戏稳定性的系统能够实现上述增强网络手游游戏稳定性的方法,因此,本发明的增强网络手游游戏稳定性的系统也具有上述增强网络手游游戏稳定性的方法的上述技术效果。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1是现有技术中客户端向服务端请求数据时,在网络断开期间及网络重新连接后的客户端与服务端之间的交互过程示意图;
图2是现有技术中客户端与服务端在网络重复断开并重新连接这一过程的数据交互示意图;
图3是现有技术中客户端在向服务端发送数据包的过程中,网络断开并重连后客户端无法得知哪个数据包已成功发出的示意图;
图4是本发明增强网络手游游戏稳定性的方法的流程图;
图5是本发明增强网络手游游戏稳定性的方法中的客户端对玩家请求的处理示意图;
图6是图4中增强网络手游游戏稳定性的方法进一步完善后的流程图;
图7是图6中增强网络手游游戏稳定性的方法进一步完善后的流程图;
图8是图7中增强网络手游游戏稳定性的方法进一步完善后的流程图;
图9是本发明通过步骤S31~步骤S35所述的方法实现客户端中的数据包发送至服务端的过程中,在网络断开并重连后客户端的继续向服务端发送未成功发送的数据包的示意图;
图10是图9中增强网络手游游戏稳定性的方法进一步完善后,客户端在网络断开后继续处理玩家请求的示意图;
图11是本发明的增强网络手游游戏稳定性的系统的结构框图;
图12是图11中的增强网络手游游戏稳定性的系统进一步完善后的结构框图;
图13是图12中的增强网络手游游戏稳定性的系统进一步完善后的结构框图。
具体实施方式
为了解决现有技术中因客户端与服务端交互过多而容易受到网络不稳定的影响造成的游戏环境不稳定和不流畅,同时也会对服务端造成较大的负担及对用户网络流量造成较多的损耗,本发明提供了一种增强网络手游游戏稳定性的方法和系统。
请参阅图4,一种增强网络手游游戏稳定性的方法,包括以下步骤:
步骤S11:客户端获取并存储游戏的初始数据;
步骤S12:客户端根据初始数据及操作指令本地处理游戏逻辑,产生操作结果;
步骤S13:客户端将操作结果反馈至玩家,同时发送至服务端验证;
步骤S14:客户端根据服务端的验证反馈判断是否重载游戏数据。
为了进一步减少客户端与服务端之间的交互,从而进一步降低网络流量,作为一种更优的技术方案,所述步骤S14包括:当客户端接收不到服务端的任何反馈时,操作结果合法,客户端不重载游戏数据;当客户端接收到服务端的异常反馈时,操作结果非法,客户端重载游戏数据。
因此,通过上述步骤S11~S14,当客户端与服务端之间的网络连接已经断开时,客户端会自行处理玩家的操作请求,不需要再进入等待网络重新接通的状态。并且,等到客户端与服务端之间的网络重新连接成功后,客户端直接发送处理结果至服务端,服务端验证客户端处理的合法性,同时客户端处理玩家的下一操作请求,由此只需要C/S一次数据包且不需要进行长时间等待状态,如图5所示。
为了进一步分担服务端的压力,同时避免网络因素对客户端请求数据响应的速度,以进一步加快响应速度、优化通信和降低网络流量,作为一种更优的技术方案,请参阅图6,本发明增强网络手游游戏稳定性的方法还包括以下步骤:
步骤S21:于客户端中构建逻辑层;
步骤S22:客户端启动游戏时同时启动逻辑层,并初始化逻辑层中的数据;
步骤S23:客户端通过逻辑层向服务端请求数据,如果逻辑层中存在相关的数据,则客户端接收由逻辑层直接返回的数据;否则,客户端接收由逻辑层从服务端中下载得到的相关数据。
为保证逻辑层中缓存数据的实时性和有效性,以进一步满足对客户端请求的数据的响应,作为一种更优的技术方案,所述逻辑层对服务端发送的数据进行缓存,并根据服务端发送的新的数据更新其自身的本地缓存数据。
为压缩客户端与服务端之间的通信数据,由此在较大程度上进一步减少用户的流量消耗,作为一种更优的技术方案,客户端再次通过逻辑层向服务端请求数据时,逻辑层对其缓存数据进行压缩处理,并将压缩后的数据发送至服务端验证;且逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端。具体地,逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端具体包括以下步骤:如果服务端返回缓存数据非法的验证结果至逻辑层,则逻辑层根据服务端中的数据更新缓存数据;如果服务端返回缓存数据合法的验证结果至逻辑层,则逻辑层将其缓存数据返回至客户端。
为实现逻辑层对服务端运算的分散,进一步减轻服务端的负担,作为一种更优的技术方案,请参阅图7,本发明增强网络手游游戏稳定性的方法还包括以下步骤:
步骤S24:逻辑层接收由产生触发事件的服务端所发送的随机因子,并根据随机因子执行服务端所需的运算,生成相应的任务;
步骤S25:逻辑层将生成的任务发送至客户端,由客户端执行并响应。
在本实施例中,其中,触发事件为逻辑层请求开启一次事务,当逻辑层需要跟服务端进行“事务交互”的时候,逻辑层的第一次请求会要求服务端发来随机因子(一次事务可能有多个请求,但触发获取随机因子的只有第一个);随机因子指的是程序上生成伪随机数序列的一个种子(seed),只要种子一致,那么后面顺序生成的随机数必定是一致的。以下,举一个例子进行说明,比如逻辑层请求“宝物抽奖”,其要求从10宝物列表中抽取3个放入背包;则此时逻辑层向服务端申请“宝箱抽奖事务”,服务端只会发来一个随机种子过来,如10011。逻辑层通过这个种子获取到的随机序列就是:1,4,6。即客户端会依次拿出第1、第4、第6个宝物,并将1、4、6这个结果告诉服务端。
为确保逻辑层运算的正确性,作为一种更优的技术方案,逻辑层生成相应的任务后,还通过服务端对其生成的任务进行取样验证。如果服务端验证任务合法,则不执行任何操作;否则,服务端发送一任务非法消息至逻辑层,逻辑层从服务端中重载并缓存运算所需的数据,重新执行运算并生成新的任务。新的任务由服务端验证合法后再发送至客户端,由客户端执行并响应。在本实施例中,此处的取样验证并不是抽取某个事务的局部数据,而是以事务为单位,对所有事务进行抽取;比如有大量客户端在战斗,面对客户端通过逻辑层发来的战斗验证数据,服务端会有一定的判定机制来决定“是否验证”,如:默认验证概率为0.6,每次验证判定合法的话,就小幅降低对这个客户端的验证概率,如降低到0.3,最低0.1;然而当某个客户端的战斗验证不合法,会急剧增大验证概率,如增加到0.8,最大为1,即只要某个客户端经常不合法,那么服务端会重点验证这个客户端。同理,服务端对逻辑层所生成的任务也采取上述服务端对客户端的验证方式进行取样验证。
为让客户端能够清楚知道服务端从哪个数据包开始就没有再接收数据包,从而不需要重发一次所有的数据包即可实现对数据包的续发,也不需要通过反馈包的方式就可以正确地知道接着要向服务端发的数据包,不仅不会导致数据包的重发和漏发,而且还进一步减少网络流量的耗费,作为一种更优的技术方案,请参阅图8,本发明增强网络手游游戏稳定性的方法还包括以下步骤:
步骤S31:客户端将数据包发送至服务端前,依照先后顺序依次对每个数据包进行编号;
步骤S32:编号完毕,客户端发送数据包至服务端;
步骤S33:服务端接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;
步骤S34:服务端与客户端断线重连,且服务端还未完全接收到客户端发送的所有数据包时,服务端将最后接收到的完整的数据包的编号发送至客户端;
步骤S35:客户端接根据服务端发送的编号,从编号为服务端发送的编号+1的数据包开始继续将未发送的数据包发送至服务端。
为避免因数据包编号重复而导致的混乱,作为一种更优的技术方案,每个数据包的编号均为一个2字节的编号,且编号的顺序从0x1开始至0xffff,且客户端所缓存的数据包的个数小于0xffff。
以下,举例说明一下步骤S31~步骤S35所述的方法:
请参阅图9,将设客户端需要将编号为0x1~0xfffe的数据包发送至服务端,但在发送过程中,客户端与服务端之间的网络连接断开了,0xfffa编号以后的数据包全部发送失败,也即服务端最后成功接收到的一个数据包的编号为0xfffa。当客户端与服务端之间的网络重新连接成功后,服务端将发送0xfffa至客户端,以表明只能成功接收到0x1~0xfffa编号的数据包,则客户端继续接着发送编号为0xfffb~0xfffe的数据包至服务端,直至服务端接收到所有数据包为止。
为保证在网络环境不好的情况下,游戏仍然能正常的进行,处于一个稳定且流畅的状态,作为一种更优的技术方案,当客户端与服务端之间的网络连接断开后,继续由客户端对玩家的操作指令进行处理并响应,产生并缓存处理结果,同时在后台不断尝试重新连接服务端。同时,为了纠正断线时因无法及时实现数据更具而造成的一些运算误差,进一步保证处理结果的准确性,优选地,当客户端在后台成功连接服务端时,发送处理结果至服务端验证。如果验证结果为处理结果有误,则服务端发送一正确的结果至客户端,由客户端进行更正;否则,不执行任何操作。例如,如图10所示,当客户端与服务端进行数据交互时,网络突然断开,则客户端响应玩家的操作指令,保持游戏不断开,并对处理产生的结果进行缓存,同时在后台不断尝试与服务端重新连接。一旦连接成功,客户端即刻将处理结果发送至服务端,由此保证了在网络环境时好时坏的情况下,仍能保证游戏环境的稳定性。
请参阅图11,相应地,本发明还提供了能够实现上述增强网络手游游戏稳定性的方法的一种增强网络手游游戏稳定性的系统,其包括客户端1和服务端2。
具体地,所述客户端1包括数据存储模块11、指令接收模块12、逻辑处理模块13、反馈模块14和重载模块15。
所述数据存储模块11,用于获取并存储游戏的初始数据;
所述指令接收模块12,用于接收玩家的操作指令;
所述逻辑处理模块13,用于根据初始数据及操作指令于本地处理游戏逻辑,并产生操作结果;
所述反馈模块14,用于将操作结果反馈至玩家并发送至服务端2;
所述重载模块15,用于根据服务端2的验证反馈判断是否重载游戏数据;
具体地,所述服务端2包括验证模块21。所述验证模块21用于接收所述操作结果,并验证所述操作结果是否合法;如果验证得到操作结果合法,则不执行任何操作;否则,发送操作结果非法的异常反馈至客户端1的重载模块15,命令重载模块15执行重载游戏数据的操作。
请参阅图12,作为一种更优的技术方案,所述客户端1还包括逻辑层模块16、启动控制模块17、数据请求模块18和数据判断模块19。
所述逻辑层模块16,用于构建并保存逻辑层、响应数据请求模块18的数据请求。在本实施例中,所述逻辑层模块16中的逻辑层对服务端2发送的数据进行缓存,并根据服务端2发送的新的数据更新其自身的本地缓存数据。
所述启动控制模块17,用于启动游戏时同时启动逻辑层模块16中的逻辑层,并初始化逻辑层中的数据。进一步,为保证在网络环境不好的情况下,游戏仍然能正常的进行,处于一个稳定且流畅的状态,作为一种更优的技术方案,当客户端1与服务端2之间的网络连接断开后,继续由启动控制模块17对玩家的操作指令进行处理并响应,产生并缓存处理结果,同时在后台不断尝试重新连接服务端2。同时,为了纠正断线时因无法及时实现数据更具而造成的一些运算误差,进一步保证处理结果的准确性,优选地,当启动控制模块17在后台成功连接服务端2时,发送处理结果至服务端2验证。如果验证结果为处理结果有误,则服务端2发送一正确的结果至启动控制模块17,由启动控制模块17进行更正;否则,不执行任何操作。
所述数据请求模块18,用于通过逻辑层模块16中的逻辑层向服务端2请求数据。
所述数据判断模块19,用于判断逻辑层模块16中的逻辑层中是否存在与数据请求模块18请求的数据相关的数据,如果存在,则发送一直接发送指令至逻辑层模块16,此时数据请求模块18将接收由逻辑层模块16直接返回的数据;否则,则发送一下载指令至逻辑层模块16,此时逻辑层模块16中的逻辑层将从服务端2中下载得到的相关数据。
进一步,为压缩客户端1与服务端2之间的通信数据,由此在较大程度上进一步减少用户的流量消耗,作为一种更优的技术方案,当客户端1的数据请求模块18再次通过逻辑层向服务端2请求数据时,逻辑层模块16中的逻辑层对其缓存数据进行压缩处理,并将压缩后的数据发送至服务端2的验证模块21验证;且逻辑层根据服务端2反馈回来的验证结果判断是否将缓存数据返回至客户端1。具体地,逻辑层根据服务端2反馈回来的验证结果判断是否将缓存数据返回至客户端1具体包括以下步骤:如果服务端2返回缓存数据非法的验证结果至逻辑层,则逻辑层根据服务端2中的数据更新缓存数据;如果服务端2返回缓存数据合法的验证结果至逻辑层,则逻辑层将其缓存数据返回至客户端1。
进一步,为实现逻辑层对服务端2运算的分散,进一步减轻服务端2的负担,作为一种更优的技术方案,所述逻辑层模块16中的逻辑层还用于分担服务端2的运算,也即,逻辑层接收由产生触发事件的服务端2所发送的随机因子,并根据随机因子执行服务端2所需的运算,生成相应的任务,同时发送给服务端2的验证模块21进行取样验证;如果服务端2的验证模块21取样验证后表示没问题,则逻辑层再将生成的任务发送至客户端1的启动控制模块17,由客户端1的启动控制模块17执行并响应。
请参阅图13,作为一种更优的技术方案,所述客户端1还包括编号模块110和数据包发送模块111,以及所述服务端2还包括数据包接收模块22。
所述编号模块110,用于依照先后顺序依次对每个数据包进行编号,并在编号完毕后发送一许可指令至数据包发送模块111;在本实施例中,为避免因数据包编号重复而导致的混乱,作为一种更优的技术方案,编号模块110对每个数据包的编号均为一个2字节的编号,且编号的顺序从0x1开始至0xffff,且编号模块110所缓存的数据包的个数小于0xffff。
所述数据包发送模块111,用于在接收到由编号模块110发送的许可指令后,将数据包发送至服务端2。
所述数据包接收模块22,用于接收数据包,并在接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;并用于在其与数据包发送模块111断线重连后,且其还未完全接收到所有数据包时,将最后接收到的完整的数据包的编号发送至数据包发送模块111,此时数据包发送模块111将根据数据包接收模块22发送的编号,从编号为数据包接收模块22发送的编号+1的数据包开始继续将未发送的数据包发送至数据包接收模块22。
相对于现有技术,本发明增强网络手游游戏稳定性的方法和系统有效地减少了客户端与服务端之间的交互,减小网络环境对游戏的影响,降低网络流量并增强游戏稳定性和流畅性。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。
Claims (15)
1.一种增强网络手游游戏稳定性的方法,其特征在于:包括以下步骤:
客户端获取并存储游戏的初始数据;
客户端根据初始数据及操作指令本地处理游戏逻辑,产生操作结果;
客户端将操作结果反馈至玩家,同时发送至服务端验证;
客户端根据服务端的验证反馈判断是否重载游戏数据。
2.根据权利要求1所述的方法,其特征在于:所述步骤客户端根据服务端的验证反馈判断是否重载数据,包括:
当客户端接收不到服务端的任何反馈时,操作结果合法,客户端不重载游戏数据;
当客户端接收到服务端的异常反馈时,操作结果非法,客户端重载游戏数据。
3.根据权利要求1所述的方法,其特征在于:还包括步骤:
于客户端中构建逻辑层;
客户端启动游戏时同时启动逻辑层,并初始化逻辑层中的数据;
客户端通过逻辑层向服务端请求数据,如果逻辑层中存在相关的数据,则客户端接收由逻辑层直接返回的数据;否则,客户端接收由逻辑层从服务端中下载得到的相关数据。
4.根据权利要求3所述的方法,其特征在于:所述逻辑层对服务端发送的数据进行缓存,并根据服务端发送的新的数据更新其自身的本地缓存数据。
5.根据权利要求4所述的方法,其特征在于:客户端再次通过逻辑层向服务端请求数据时,逻辑层对其缓存数据进行压缩处理,并将压缩后的数据发送至服务端验证;且逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端。
6.根据权利要求5所述的方法,其特征在于:所述步骤逻辑层根据服务端反馈回来的验证结果判断是否将缓存数据返回至客户端具体包括以下步骤:
如果服务端返回缓存数据非法的验证结果至逻辑层,则逻辑层根据服务端中的数据更新缓存数据;
如果服务端返回缓存数据合法的验证结果至逻辑层,则逻辑层将其缓存数据返回至客户端。
7.根据权利要求6所述的方法,其特征在于:还包括以下步骤:
逻辑层接收由产生触发事件的服务端所发送的随机因子,并根据随机因子执行服务端所需的运算,生成相应的任务;
逻辑层将生成的任务发送至客户端,由客户端执行并响应。
8.根据权利要求7所述的方法,其特征在于:逻辑层生成相应的任务后,还通过服务端对其生成的任务进行取样验证。
9.根据权利要求1所述的方法,其特征在于:还包括以下步骤:
客户端将数据包发送至服务端前,依照先后顺序依次对每个数据包进行编号;
编号完毕,客户端发送数据包至服务端;
服务端接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;
服务端与客户端断线重连,且服务端还未完全接收到客户端发送的所有数据包时,服务端将最后接收到的完整的数据包的编号发送至客户端;
客户端接根据服务端发送的编号,从编号为服务端发送的编号+1的数据包开始继续将未发送的数据包发送至服务端。
10.根据权利要求9所述的方法,其特征在于:每个数据包的编号均为一个2字节的编号,且编号的顺序从0x1开始至0xffff,且客户端所缓存的数据包的个数小于0xffff。
11.根据权利要求1所述的方法,其特征在于:当客户端与服务端之间的网络连接断开后,继续由客户端对玩家的操作指令进行处理并响应,产生并缓存处理结果,同时在后台不断尝试重新连接服务端。
12.根据权利要求11所述的方法,其特征在于:当客户端在后台成功连接服务端时,发送处理结果至服务端验证。
13.一种增强网络手游游戏稳定性的系统,其特征在于:包括客户端和服务端;
所述客户端包括
数据存储模块,用于获取并存储游戏的初始数据;
指令接收模块,用于接收玩家的操作指令;
逻辑处理模块,用于根据初始数据及操作指令于本地处理游戏逻辑,并产生操作结果;
反馈模块,用于将操作结果反馈至玩家并发送至服务端;
以及重载模块,用于根据服务端的验证反馈判断是否重载游戏数据;
所述服务端包括
验证模块,用于接收所述操作结果,并验证所述操作结果是否合法;如果验证得到操作结果合法,则不执行任何操作;否则,发送操作结果非法的异常反馈至客户端的重载模块,命令重载模块执行重载游戏数据的操作。
14.根据权利要求13所述的系统,其特征在于:所述客户端还包括
逻辑层模块,用于构建并保存逻辑层;
启动控制模块,用于启动游戏时同时启动逻辑层模块中的逻辑层,并初始化逻辑层中的数据;
数据请求模块,用于通过逻辑层模块中的逻辑层向服务端请求数据;
以及数据判断模块,用于判断逻辑层模块中的逻辑层中是否存在与数据请求模块请求的数据相关的数据,如果存在,则发送一直接发送指令至逻辑层模块,此时数据请求模块将接收由逻辑层模块直接返回的数据;否则,则发送一下载指令至逻辑层模块,此时逻辑层模块中的逻辑层将从服务端中下载得到的相关数据。
15.根据权利要求14所述的系统,其特征在于:
所述客户端还包括
编号模块,用于依照先后顺序依次对每个数据包进行编号,并在编号完毕后发送一许可指令至数据包发送模块;
数据包发送模块,用于在接收到由编号模块发送的许可指令后,将数据包发送至服务端;
所述服务端还包括
数据包接收模块,用于接收数据包,并在接收到完整的数据包后,保存并更新最后接收到的完整的数据包的编号;并用于在其与数据包发送模块断线重连后,且其还未完全接收到所有数据包时,将最后接收到的完整的数据包的编号发送至数据包发送模块,此时数据包发送模块将根据数据包接收模块发送的编号,从编号为数据包接收模块发送的编号+1的数据包开始继续将未发送的数据包发送至数据包接收模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033666.8A CN105471911A (zh) | 2015-12-31 | 2015-12-31 | 增强网络手游游戏稳定性的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033666.8A CN105471911A (zh) | 2015-12-31 | 2015-12-31 | 增强网络手游游戏稳定性的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105471911A true CN105471911A (zh) | 2016-04-06 |
Family
ID=55609181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511033666.8A Pending CN105471911A (zh) | 2015-12-31 | 2015-12-31 | 增强网络手游游戏稳定性的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105471911A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106714334A (zh) * | 2016-12-22 | 2017-05-24 | 网易(杭州)网络有限公司 | 一种断线重连方法、装置及系统 |
CN107875635A (zh) * | 2016-09-30 | 2018-04-06 | 株式会社万代南梦宫娱乐 | 计算机系统及存储介质 |
CN107875634A (zh) * | 2016-09-30 | 2018-04-06 | 株式会社万代南梦宫娱乐 | 计算机系统及存储介质 |
CN108939538A (zh) * | 2018-07-24 | 2018-12-07 | 合肥爱玩动漫有限公司 | 一种用于网页游戏的断线重连方法 |
CN109756567A (zh) * | 2018-12-28 | 2019-05-14 | 北京东方国信科技股份有限公司 | 一种跨域的任务调度断点续传方法 |
CN111162880A (zh) * | 2019-12-26 | 2020-05-15 | 上海米哈游天命科技有限公司 | 数据发送方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039220A (zh) * | 2007-03-30 | 2007-09-19 | 华为技术有限公司 | 提供个性化体验的方法、装置、服务器系统及网管系统 |
CN102130908A (zh) * | 2011-01-30 | 2011-07-20 | 上海盈游网络技术有限公司 | 延时敏感型网络游戏中异步计算同步回朔方法及系统 |
CN103731340A (zh) * | 2013-12-27 | 2014-04-16 | 北京像素软件科技股份有限公司 | 一种网络游戏系统的通信方法 |
-
2015
- 2015-12-31 CN CN201511033666.8A patent/CN105471911A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039220A (zh) * | 2007-03-30 | 2007-09-19 | 华为技术有限公司 | 提供个性化体验的方法、装置、服务器系统及网管系统 |
CN102130908A (zh) * | 2011-01-30 | 2011-07-20 | 上海盈游网络技术有限公司 | 延时敏感型网络游戏中异步计算同步回朔方法及系统 |
CN103731340A (zh) * | 2013-12-27 | 2014-04-16 | 北京像素软件科技股份有限公司 | 一种网络游戏系统的通信方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107875635A (zh) * | 2016-09-30 | 2018-04-06 | 株式会社万代南梦宫娱乐 | 计算机系统及存储介质 |
CN107875634A (zh) * | 2016-09-30 | 2018-04-06 | 株式会社万代南梦宫娱乐 | 计算机系统及存储介质 |
CN107875635B (zh) * | 2016-09-30 | 2022-10-11 | 株式会社万代南梦宫娱乐 | 计算机系统及存储介质 |
CN106714334A (zh) * | 2016-12-22 | 2017-05-24 | 网易(杭州)网络有限公司 | 一种断线重连方法、装置及系统 |
CN108939538A (zh) * | 2018-07-24 | 2018-12-07 | 合肥爱玩动漫有限公司 | 一种用于网页游戏的断线重连方法 |
CN109756567A (zh) * | 2018-12-28 | 2019-05-14 | 北京东方国信科技股份有限公司 | 一种跨域的任务调度断点续传方法 |
CN111162880A (zh) * | 2019-12-26 | 2020-05-15 | 上海米哈游天命科技有限公司 | 数据发送方法、装置、设备及存储介质 |
CN111162880B (zh) * | 2019-12-26 | 2022-09-09 | 上海米哈游天命科技有限公司 | 数据发送方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105471911A (zh) | 增强网络手游游戏稳定性的方法及系统 | |
CN101605108B (zh) | 一种即时通信的方法、系统及装置 | |
CN107276765B (zh) | 区块链中共识的处理方法及装置 | |
CN101820447A (zh) | 软件升级方法及升级装置 | |
CN107480990A (zh) | 区块链记账方法及装置 | |
CN106973074B (zh) | 一种数据处理方法、装置及系统 | |
CN102404398B (zh) | 一种支持多客户端的rdma消息发送方法 | |
CN107798538A (zh) | 一种交易核算方法及客户端 | |
CN103780619A (zh) | 广域网实时互动游戏同步方法、装置及系统 | |
CN114866250B (zh) | 车内can网络新鲜值构建方法、装置、车辆及存储介质 | |
CN107294830B (zh) | 一种数据传输方法及系统 | |
CN103731340A (zh) | 一种网络游戏系统的通信方法 | |
CN113746892A (zh) | 一种远程升级方法及无线终端设备 | |
CN112486977B (zh) | 一种链上链式移动端锻造区块的方法及系统 | |
CN104801045A (zh) | 一种手游断线的处理方法及装置 | |
US9686320B2 (en) | Crisscross cancellation protocol | |
CN103514651A (zh) | 一种基于脸部识别的互联网彩票安全交易和兑奖系统及方法 | |
EP2396983A1 (de) | Verfahren und system zum sicheren übertragen einer nachricht | |
CN111917767B (zh) | 一种客户端的请求认证方法、装置、设备及存储介质 | |
CN107733979A (zh) | 数据推送方法、服务器及系统 | |
CN114866585A (zh) | 远程升级方法、装置、系统及设备端接头 | |
CN110300105B (zh) | 一种网络密码机的远程密钥管理方法 | |
CN113082722B (zh) | 游戏管理系统及游戏管理方法 | |
CN106411570A (zh) | 实现sctp协议热备份的方法、系统及服务器主机 | |
CN106301908B (zh) | 一种基于热插拔机制线卡的适配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 510000 3, 1 building, 90 ho he road, Luogang District, Guangzhou, Guangdong. Applicant after: Guangzhou Duoyi Network Co., Ltd. Address before: 510000 3, 1 building, 90 ho he road, Luogang District, Guangzhou, Guangdong. Applicant before: Guangzhou Baiyun Bio-Tech Co., Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160406 |
|
RJ01 | Rejection of invention patent application after publication |