一种同步客户端和服务器玩家每日状态的方法与流程

文档序号:32950366发布日期:2023-01-14 13:13阅读:27来源:国知局

1.本发明涉及游戏软件技术领域,特别涉及一种同步客户端和服务器玩家每日状态的方法。


背景技术:

2.软件游戏中的一些功能常常设有每日状态,常见的带有每日状态的功能如商店购买商品的次数,很多游戏会限制玩家每日在商店的购买次数,玩家在当日购买的商品达到指定限购次数后,则不能继续再购买商品,在跨天重置每日购买次数后,玩家又可以再次在商店购买商品。
3.对于跨天重置玩家每日状态,目前普遍的实现方案是由服务器发起的,服务器先重置玩家每日状态,然后实时通讯客户端,同步客户端的玩家每日状态,而服务器的重置操作通常由跨天定时器触发,重置在线玩家的每日状态,不在线的玩家在玩家上线登录游戏时重置每日状态。
4.现有的服务器发起实时同步重置的方案存在一些不可避免的问题,随着游戏体量的增加,玩家人数增多,以及具有每日状态的游戏功能的增多,在跨天这个时间点(例如:在每日的0点进行同步重置)给服务器带来了严重的性能开销,拉升了服务器的性能峰值,从而造成服务器卡顿、玩家请求延迟响应等情况的发生,此外,同时通讯客户端的在线玩家同步每日状态也会带来网络的峰值波动,造成网络卡顿、在线玩家延迟接收到同步消息等情况的发生。


技术实现要素:

5.为解决上述问题,本发明提供了一种同步客户端和服务器玩家每日状态的方法。
6.本发明采用以下技术方案:
7.一种同步客户端和服务器玩家每日状态的方法,包括客户端临时重置和服务器常规重置;所述客户端临时重置时,仅客户端临时更新重置玩家每日状态数据,服务器的玩家每日状态数据不作更新重置;所述服务器常规重置时,服务器和客户端均更新重置玩家每日状态数据;
8.所述客户端临时重置包括重置时间节点触发的临时重置和登录动作触发的临时重置;所述重置时间节点触发的临时重置为:每当玩家处于在线状态且到达重置时间节点时,客户端就进行一次临时重置;所述登录动作触发的临时重置为:每当玩家进行登录操作时,客户端就进行一次临时重置;
9.所述服务器常规重置为:当玩家执行输入操作的通讯请求时,客户端先向服务器发起状态同步请求,服务器更新重置玩家每日状态数据后将更新重置结果返回给客户端,然后客户端根据返回结果判断是否重置成功。
10.进一步地,所述玩家每日状态数据包括每日的重置时间和各个功能模块的玩家每日状态数值。
11.进一步地,所述重置时间节点是预先设定的每日更新重置玩家每日状态数据的时间节点。
12.进一步地,所述客户端设有客户端状态同步模块用于管理客户端的每日玩家状态数据,所述服务器设有服务器状态同步模块用于管理服务器的每日玩家状态数据。
13.进一步地,所述客户端还设有跨天定时器,所述跨天定时器用于设定重置时间节点和发出跨天重置消息。
14.进一步地,所述客户端状态同步模块接收到所述跨天定时器发出的跨天重置消息后,所述客户端判断玩家是否处于在线状态,若玩家处于在线状态则临时更新重置客户端的玩家每日状态数据,若玩家处于非在线状态则不更新重置客户端的玩家每日状态数据。
15.进一步地,所述客户端临时重置,具体为:客户端临时重置被触发后,所述客户端获取当前时间,比较当前时间与重置时间节点是否处于同一天,若不处于同一天,则更新重置客户端的玩家每日状态数据,若处于同一天,则保持客户端的玩家每日状态数据不变。
16.进一步地,所述服务器常规重置,包括如下步骤:
17.s1、服务器接收到客户端的状态同步请求后,获取当前时间,比较当前时间与重置时间节点是否处于同一天,若不处于同一天,则更新重置玩家每日状态数据,并将更新后的数据返回给客户端,若处于同一天,则将当前服务器的玩家每日状态数据返回给客户端;
18.s2、客户端接收到服务端的返回结果,判断是否重置成功,若客户端当前的玩家每日状态数据与客户端返回的玩家每日状态数据一致,则判断为重置成功,若客户端当前的玩家每日状态数据与客户端返回的玩家每日状态数据不一致,则判断为重置失败并将客户端的数据更新为服务端返回的玩家每日状态数据。
19.采用上述技术方案后,本发明与背景技术相比,具有如下优点:
20.本发明的玩家每日状态数据由客户端单独重置,不实时通讯服务器进行同步,仅在玩家输入操作触发通讯服务器前,才同步客户端和服务器的玩家每日状态数据,通过这种延时同步客户端和服务器玩家每日状态数据的方法,实现了玩家每日状态数据的错峰同步,从而减少数据同步带来的网络峰值波动,有效降低服务器在跨天重置时间节点的性能峰值,改善服务器卡顿、玩家请求延迟响应的情况。
具体实施方式
21.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
22.实施例
23.一种同步客户端和服务器玩家每日状态的方法,包括客户端临时重置和服务器常规重置;所述客户端临时重置时,仅客户端临时更新重置玩家每日状态数据,服务器的玩家每日状态数据不作更新重置;所述服务器常规重置时,服务器和客户端均更新重置玩家每日状态数据;所述玩家每日状态数据包括每日的重置时间和各个功能模块的玩家每日状态数值,本实施例以商店购物功能模块为例进行说明,在游戏中的商店购物时,限定玩家每日在商店的购买次数,玩家当日在商店购买商品达到指定限购次数后,不能在继续购买商品,玩家每日状态数值即为剩余购买次数,在跨天重置玩家每日购买次数后,玩家又可以再次
在商店购买商品。具体的玩家每日状态数据同步方法如下:
24.(1)客户端临时重置
25.所述客户端临时重置包括重置时间节点触发的临时重置和登录动作触发的临时重置;所述客户端设有客户端状态同步模块用于管理客户端的每日玩家状态数据,所述客户端还设有跨天定时器,所述跨天定时器用于设定重置时间节点和发出跨天重置消息。
26.所述重置时间节点触发的临时重置为:每当玩家处于在线状态且到达重置时间节点时,客户端就进行一次临时重置;具体的:当所述客户端状态同步模块在每日0点接收到所述跨天定时器发出的跨天重置消息后,所述客户端判断玩家是否处于在线状态,若玩家处于在线状态,则客户端状态同步模块临时更新重置客户端的玩家每日状态数据,若玩家处于非在线状态则不更新重置客户端的玩家每日状态数据。其中,重置时间节点是预先设定的每日更新重置玩家每日状态数据的时间节点,本实施例的重置时间节点设定为每日的0点。
27.所述登录动作触发的临时重置为:每当玩家进行登录操作时,客户端就进行一次临时重置;
28.客户端临时重置被触发后,所述客户端获取当前时间,比较当前时间与重置时间节点是否处于同一天,若不处于同一天,则更新重置客户端的玩家每日状态数据,若处于同一天,则保持客户端的玩家每日状态数据不变。客户端的临时重置是由客户端本身进行单独重置,不实时通讯服务器进行同步,也就是说,此时服务器并没有进行玩家每日状态数据的更新重置。
29.(2)服务器常规重置
30.所述服务器设有服务器状态同步模块用于管理服务器的每日玩家状态数据。所述服务器常规重置为:当玩家执行输入操作的通讯请求时,客户端先向服务器发起状态同步请求,服务器更新重置玩家每日状态数据后将更新重置结果返回给客户端,然后客户端根据返回结果判断是否重置成功。
31.所述服务器常规重置,包括如下步骤:
32.s1、服务器接收到客户端的状态同步请求后,获取当前时间,比较当前时间与重置时间节点是否处于同一天,若不处于同一天,则更新重置玩家每日状态数据,并将更新后的数据返回给客户端,若处于同一天,则将当前服务器的玩家每日状态数据返回给客户端;
33.s2、客户端接收到服务端的返回结果,判断是否重置成功,若客户端当前的玩家每日状态数据与客户端返回的玩家每日状态数据一致,则判断为重置成功,若客户端当前的玩家每日状态数据与客户端返回的玩家每日状态数据不一致,则判断为重置失败并将客户端的数据更新为服务端返回的玩家每日状态数据。
34.当重置成功时,表示玩家的购买次数被重置,玩家能继续执行输入操作的通讯请求,即能继续购买商品,若重置失败,则根据服务端返回的玩家每日状态数据更新当前客户端数据,若更新后无剩余购买次数,否则停止玩家的输入操作的通讯请求,也就是玩家当天没有剩余购买次数了,不能再购买商品,每次玩家成功购买商品会跟服务器进行一次完整通讯,服务器的同步模块会扣除一次购买次数,并且会马上同步给客户端。
35.所述服务器常规重置不是传统的由服务器端的跨天定时器触发的,而是是由客户端触发的,具体的是由玩家输入操作触发通讯服务器所触发的,当玩家登录时,先进行的是
客户端的临时重置,然后当玩家输入操作触发通讯器时(例如:当玩家进入商店点击购买商品时),客户端就会向服务端发起状态同步请求,此时才同步客户端和服务器的玩家每日状态数据,通过这种延时同步客户端和服务器玩家每日状态数据的方法,实现了玩家每日状态数据的错峰同步,从而减少数据同步带来的网络峰值波动,有效降低服务器在跨天重置时间节点的性能峰值,改善服务器卡顿、玩家请求延迟响应的情况。
36.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1