掌桥专利:专业的专利平台
掌桥专利
首页

一种游戏虚拟商品交易的处理方法、装置及电子设备

文献发布时间:2023-06-19 19:38:38


一种游戏虚拟商品交易的处理方法、装置及电子设备

技术领域

本申请涉及游戏数据处理技术领域,尤其是涉及一种游戏虚拟商品交易的处理方法、装置及电子设备。

背景技术

在游戏进程中,玩家可以通过游戏中的虚拟交易来获取所需的虚拟商品,一般来说,在游戏中,与交易相关的玩家数据可以包括虚拟货币、虚拟装备(虚拟道具)、背包以及召唤兽(针对于特定游戏类型的游戏),一般都会存储在游戏服务器中的角色数据文件中,但是,对于游戏服务器来说,游戏服务器中需要处理的数据量比较大,可能会存在数据处理压力较大,在不对游戏服务器扩容的情况下,可能会导致玩家请求处理效率较低的问题。

为了减轻游戏服务器在游戏进程中的处理压力,在控制游戏中的虚拟商品交易系统中加入交易服务器在交易服务器中为玩家提供虚拟商品寄售和虚拟上平购买的服务,玩家可以控制虚拟角色通过交易服务器进行虚拟商品的寄售以及购买。

但是,在引入交易服务器后,在游戏服务器发生宕机回档后,游戏服务器处记录的玩家数据可能会与交易服务器中记录的商品数据存在不一致的情况,进而导致目标虚拟商品的处理流程发生问题,影响玩家交易请求处理的准确性。

发明内容

有鉴于此,本申请的目的在于提供一种游戏虚拟商品交易的处理方法、装置及电子设备,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。

第一方面,本申请实施例提供了一种游戏虚拟商品交易的处理方法,应用于游戏中的虚拟商品交易系统;所述虚拟商品交易系统包括游戏服务器以及交易服务器;所述处理方法包括:

响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识;

控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态;

当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

第二方面,本申请实施例还提供了一种游戏虚拟商品交易的处理装置,应用于游戏中的虚拟商品交易系统;所述处理装置包括:

请求发送模块,用于响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识;

结果返回模块,用于控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态;

商品状态调整模块,用于当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面任一项所述的游戏虚拟商品交易的处理方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一项所述的游戏虚拟商品交易的处理方法的步骤。

本申请实施例提供的游戏虚拟商品交易的处理方法、装置及电子设备,响应于玩家发出的虚拟商品寄售指令,控制游戏服务器基于虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新目标虚拟角色对应的目标版本号,将包含目标版本号的商品寄售请求发送至交易服务器;控制交易服务器存储目标版本号,并基于目标虚拟商品的商品标识将交易服务器中的虚拟商品表中,目标虚拟商品的商品状态更新为上架中,同时将目标虚拟商品的商品状态更新成功的商品处理结果发送至游戏服务器。当游戏服务器宕机重启后,若是游戏服务器中存储的目标版本号与交易服务器中存储的目标版本号不一致,且交易服务器存储的目标版本号新于在游戏服务器存储的目标版本号,则基于游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对交易服务器记录的虚拟物品的虚拟物品状态进行调整。这样,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例所提供的一种游戏虚拟商品交易的处理方法的流程图;

图2为本申请实施例所提供的游戏服务器与交易服务器之间的数据流转示意图;

图3为本申请实施例所提供的一种游戏虚拟商品交易的处理装置的结构示意图之一;

图4为本申请实施例所提供的一种游戏虚拟商品交易的处理装置的结构示意图之二;

图5为本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

首先,对本申请可适用的应用场景进行介绍。本申请可应用于游戏数据处理技术领域。

在游戏进程中,玩家可以通过游戏中的虚拟交易来获取所需的虚拟商品,一般来说,在游戏中,与交易相关的玩家数据可以包括虚拟货币、虚拟装备(虚拟道具)、背包以及召唤兽(针对于特定游戏类型的游戏),一般都会存储在游戏服务器中的角色数据文件中,但是,对于游戏服务器来说,游戏服务器中需要处理的数据量比较大,可能会存在数据处理压力较大,在不对游戏服务器扩容的情况下,可能会导致玩家请求处理效率较低的问题。

为了减轻游戏服务器在游戏进程中的处理压力,在控制游戏中的虚拟商品交易系统中加入交易服务器在交易服务器中为玩家提供虚拟商品寄售和虚拟上平购买的服务,玩家可以控制虚拟角色通过交易服务器进行虚拟商品的寄售以及购买。

但是,在引入交易服务器后,在游戏服务器发生宕机回档后,游戏服务器处记录的玩家数据可能会与交易服务器中记录的商品数据存在不一致的情况,进而导致目标虚拟商品的处理流程发生问题,影响玩家交易请求处理的准确性。

基于此,本申请实施例提供了一种游戏虚拟商品交易的处理方法,以保持游戏服务器与交易服务器处的数据一致,提升玩家交易请求处理的准确性。

请参阅图1,图1为本申请实施例所提供的一种游戏虚拟商品交易的处理方法的流程图。如图1中所示,本申请实施例提供的游戏虚拟商品交易的处理方法,包括:

S101、响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识。

S102、控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态。

S103、当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

本申请实施例所提供的一种游戏虚拟商品交易的处理方法,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。

下面对本申请实施例示例性的各步骤进行说明:

S101、响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识。

在本申请实施例中,在游戏进程中,玩家可以通过游戏中的虚拟交易来获取所需的虚拟商品,一般来说,在游戏中,与交易相关的玩家数据可以包括虚拟货币、虚拟装备(虚拟道具)、背包以及召唤兽(针对于特定游戏类型的游戏),一般都会存储在游戏服务器中的角色数据文件中,但是,对于游戏服务器来说,游戏服务器中需要处理的数据量比较大,可能会存在数据处理压力较大,在不对游戏服务器扩容的情况下,可能会导致玩家请求处理效率较低的问题。

为了减轻游戏服务器在游戏进程中的处理压力,在控制游戏中的虚拟商品交易系统中加入交易服务器在交易服务器中为玩家提供虚拟商品寄售和虚拟上平购买的服务,玩家可以控制虚拟角色通过交易服务器进行虚拟商品的寄售以及购买,例如,玩家控制虚拟角色将自己持有的虚拟商品寄售后,其他玩家使用游戏内的交易中心进行浏览、检索和购买。与商品相关的数据均存储在微服务端的MongoDB数据库中。

具体地,玩家可以通过图形用户界面上展示的虚拟商品交易界面(如,商品寄售界面,或者商品购买界面)上的触控操作,下达虚拟产品寄售指令,或者是通过外接设备(如鼠标、键盘)等选择通过终端展示的图形用户界面的商品寄售操作下达虚拟商品寄售指令。

其中,在虚拟商品寄售指令中包括玩家需要进行寄售的虚拟商品的商品类型,以及需要进行寄售的虚拟商品的商品数量。

在一种可能的实施方式中,在游戏中的虚拟商品交易系统接收到玩家下达的虚拟商品寄售指令后,控制游戏服务器根据虚拟商品寄售指令更新玩家控制的目标虚拟角色当前的目标商品持有数量以及目标商品寄售数量,同时更新目标虚拟角色的目标版本号。

其中,所述目标虚拟角色对应的目标版本号用于表征所述目标虚拟角色的目标商品持有数量的变化次数,当所述目标虚拟角色的目标商品持有数量更新时,所述目标版本号同时进行更新。

具体地,通过设置一个目标版本号来表征玩家数据跟随交易次数的变化情况,因为玩家在控制目标虚拟角色进行交易的过程中玩家持有的目标商品数量是一定会发生变化,那么,目标版本号也可以用来表征标虚拟角色的目标商品持有数量的变化次数。

在一种可能的实施方式中,目标版本号可以设置为一个单调递增的数值,在玩家的数据中另加一个版本号字段用来记录玩家在控制目标虚拟角色进行交易时的交易次数变化,即,每次因交易修改玩家数据后将版本号加一。

在一种可能的实施方式中,响应于以下任意一种行为,对所述目标虚拟角色的目标商品持有数量进行更新:

所述目标虚拟角色购买虚拟商品、所述目标虚拟角色将拥有的虚拟商品售卖给其他虚拟角色。

具体地,目标虚拟角色购买虚拟商品可以是玩家控制目标虚拟角色从交易服务器对应的虚拟物品商店处购买虚拟商品,还可以是玩家控制目标虚拟角色从其他虚拟角色处购买虚拟物品,对于目标虚拟角色的购买行为,一般是导致目标虚拟角色目标商品持有数量增加;目标虚拟角色将拥有的虚拟商品售卖给其他虚拟角色可以是目标虚拟角色直接将拥有的虚拟商品卖给其他虚拟角色;或者是目标虚拟角色将拥有的虚拟商品寄售到交易服务器的商店中,其他虚拟角色从交易服务器处购买目标虚拟角色的虚拟商品,对于目标虚拟角色的售卖行为,一般是导致目标虚拟角色目标商品持有数量减少。

值得注意的是,无论目标虚拟角色的目标商品持有数量是增加还是减少,只要是因为交易导致的玩家数据进行改变,那么玩家控制的目标虚拟角色对应的目标版本号就会发生变化。

对于游戏服务器侧来说,在更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量以及目标版本号后,生成商品寄售请求发送至交易服务器,所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识。以使交易服务器记录目标版本号,并根据商品寄售请求中的寄售的目标虚拟商品的商品标识以及商品寄售数量更新商品数据。

在一种可能的实施方式中,为了防止因为游戏服务器与交易服务器之间的网络通信问题,导致游戏服务器发送商品寄售请求失败,或者是无法接收到交易服务器发送的商品处理结果,需要游戏服务器进行请求重试,再次向交易服务器发送商品寄售请求,为了保证商品寄售请求发送的效率,可以在游戏服务器生成商品交易请求后,将商品交易请求存储进行持久化,以便游戏服务器可以及时进行请求重新发送。

具体地,所述处理方法还包括:

a1:控制所述游戏服务器存储所述商品寄售请求,并在所述游戏服务器发出商品寄售请求后的预设时间段内并未接收到所述交易服务器发送的商品处理结果时,将存储的商品寄售请求重新发送至所述交易服务器,并接收所述交易服务器返回的商品处理结果。

在本申请实施例中,在游戏服务器生成商品寄售请求后,即刻将商品寄售请求进行存储持久化,并在游戏服务器将商品寄售请求发送后,对交易服务器的反馈进行监督,若是在发出商品寄售请求后的预设时间段内并未接收到所述交易服务器发送的商品处理结果时,启动请求重试,控制游戏服务器将存储的商品寄售请求重新发送至所述交易服务器,并接收交易服务器返回的商品处理结果。

值得注意的是,在游戏服务器生成商品寄售请求时,每个请求中均会对应一个唯一的请求号,可以根据未接收到交易服务器返回商品处理结果的商品寄售请求的请求号从游戏服务器的存储数据中确定出对应的商品寄售请求进行重新发送。

在一种可能的实施方式中,在确定发出的商品寄售请求接收到交易服务器返回的商品处理结果后,为了节省游戏服务器的内存,可以将存储的商品寄售请求进行删除。

在一种可能的实施方式中,对于游戏服务器向交易服务器发送商品寄售请求的次数较多,且均未得到接收到交易服务器针对于商品寄售请求的商品处理结果,这时需要生成预警信息,提示工作人员介入检测游戏服务器与交易服务器之间的网络通信情况。

具体地,所述处理方法还包括:

b1:检测在预设时间段内所述游戏服务器向所述交易服务器发送的商品寄售请求的次数是否超过预设次数。

b2:若超过,生成网络异常报警信息。

在本申请实施例中,可以预设检查时间段,统计游戏服务器在该检查时间段内发送的商品寄售请求的次数是否超过预设次数,若是超过预设次数,证明游戏服务器一直在向交易服务器发送商品交易请求,但是却并未接收到交易服务器回复的商品处理结果,此时,认为游戏服务器与交易服务器之间的网络通信可能存在问题,因此,需要生成网络异常报警信息,提示工作人员检查游戏服务器与交易服务器之间的网络通信情况。

值得注意的是,为了保证游戏服务器发送的商品寄售请求在网络恢复后,可以及时被交易服务器获取,提升游戏服务器与交易服务器之间的数据传输效率,进而提升游戏中交易的处理效率,在工作人员介入排查游戏服务器与交易服务器之间的网络问题时,游戏服务器一直按照预设频率向交易服务器发送商品寄售请求,保证游戏服务器发送的商品寄售请求在网络恢复后,可以及时被交易服务器获取。

在一种可能的实施方式中,预设时间段可以是根据游戏服务器的商品寄售请求的发送频率以及交易服务器的数据处理量确定。

在一种可能的实施方式中,对于游戏服务器重复多次向交易服务器发送同一未收到回复的商品寄售请求时,可以是按照不同的时间间隔向交易服务器进行发送,例如,在第一次发送商品寄售请求未接收到交易服务器回复的商品处理结果,可以间隔10秒后再次向交易服务器发送商品寄售请求,在第二次发送商品寄售请求未接收到交易服务器回复的商品处理结果,可以间隔20秒后再次向交易服务器发送商品寄售请求,以此类推,以避免交易服务器与游戏服务器之间的网络通信正常,交易服务器由于处理任务过多未来得及处理到游戏服务器本次发送的商品寄售请求,交易服务器处接收到过多的商品寄售请求,导致交易服务器的处理压力过大的情况出现。

S102、控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态。

在本申请实施例中,当交易服务器与游戏服务器之间的通信正常时,交易服务器在接收到游戏服务器的商品寄售请求时,先从商品寄售请求中获取到目标版本号进行存储,然后根据目标虚拟商品的商品标识,将交易服务器中维护的虚拟商品列表中对应的目标虚拟商品的商品状态更新为上架中,在确定目标虚拟商品上架成功后,将目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过游戏服务器通知对应的玩家虚拟商品上架成功,可以通过交易服务器售卖被上架的目标虚拟商品。

其中,虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态。

在一种可能的实施方式中,由于游戏服务器可能在向交易服务器发出商品寄售请求后,在预设时间段内并未接收到交易服务器返回的商品处理结果,那么,交易服务器可能会重复多次向交易服务器发送同一商品交易请求,为了保证交易服务器针对同一商品寄售请求只进行一次处理,交易服务器在接收到游戏服务器发送的商品寄售请求后,还需要对是否已经接收到相同的商品寄售请求进行核对。

其中,在交易服务器接收到游戏服务器发送的商品处理请求时,会预先将不同的商品处理请求存储到请求列表中,并将请求列表中的每个商品处理请求的请求状态设置为请求收到状态,同时在请求列表中记录各个商品处理请求的请求号(请求标识),通过请求标识在请求表中进行索引检测。

具体地,所述处理方法还包括:

c1:控制所述交易服务器基于接收到的商品寄售请求中包含的请求标识,查找在所述请求列表中,是否已经存储有所述商品寄售请求。

c2:若所述请求列表中已经存储有所述商品寄售请求,忽略所述商品寄售请求。

c3:若所述请求列表中并未存储有所述商品寄售请求,将所述商品寄售请求插入到所述请求列表中。

在本申请实施例中,在交易服务器接收到游戏服务器发送的商品寄售请求后,根据该商品寄售请求对应的请求标识,查找在请求列表中是否存在请求标识一致的商品寄售请求,若是在请求列表中已经存在一致的商品寄售请求,说明交易服务器此前已经接收到相同的商品寄售请求,为了避免重复对商品寄售请求进行处理,将忽略本次接收到商品寄售请求。

若是在请求表中并未查找到相同请求标识的请求,说明本次是交易服务器第一次接收到商品寄售请求,此时,将接收到商品寄售请求插入到所述请求列表中,按照请求表中各条商品处理请求的顺序依次按照请求进行处理。

在一种可能的实施方式中,针对于商品寄售请求插入到请求表中的操作,可以是按照请求表中已经包含的每条商品处理请求的接收时间以及商品寄售请求的接收时间,按照时间有早到晚的顺序进行插入。

例如,接收到该条商品寄售请求的时间为XX年XX月13:00,在请求表中存在连续的A商品处理请求以及B商品处理请求,接收到A商品处理请求的时间为XX年XX月10:00,接收到B商品处理请求的时间为XX年XX月17:00,那么,该条商品寄售请求应该写入到A商品处理请求以及B商品处理请求之间。

在一种可能的实施方式中在,在确定商品寄售请求插入到请求表后,根据商品寄售请求中的指示,交易服务器开始执行目标虚拟商品上架的请求,在确定交易服务器执行上架请求结束后,更新目标虚拟商品对应的商品状态。

具体地,步骤“基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中”,包括:

d1:控制所述交易服务器将所述目标虚拟商品的商品标识写入所述虚拟商品表中,并执行针对于所述目标虚拟商品的上架操作,以及将所述虚拟商品表中记录的所述商品标识对应的商品状态更新为上架中。

在本申请实施例中,在确定接收到游戏服务器发送的商品寄售请求后,控制交易服务器将目标虚拟商品的商品标识写入到虚拟商品列表中,同时控制交易服务器执行目标虚拟商品的上架操作,同时将虚拟商品表中记录的商品标识对应的商品状态更新为上架中。

在一种可能的实施方式中,对于商品寄售请求中的目标虚拟商品的商品标识插入到虚拟商品表中的操作,可以是按照虚拟商品表中已经包含的每个虚拟商品的接收时间以及商品寄售请求的接收时间,按照时间有早到晚的顺序进行插入;还可以是按照虚拟商品按照商品类别进行存储,将同属于同一商品类别的虚拟商品写入到虚拟商品表中的相邻位置(可以事先对虚拟商品表划分区域,可以以不同行为划分,将同属于同一商品类别的虚拟商品写入到虚拟商品表中的相邻位置)。

在一种可能的实施方式中,在交易服务器执行游戏服务器发送的商品寄售请求后,会将目标虚拟商品的商品状态更新成功的商品处理结果再返回至游戏服务器,以提示游戏服务器本次虚拟商品交易成功,因为游戏服务器与交易服务器之间的网络问题,导致游戏服务器并未接收到商品处理结果,再次请求交易服务器执行请求,为了保证交易服务器再次执行相应的商品寄售请求影响处理效率,在交易服务器处理结束后,交易服务器会先持久化存储相应的商品处理结果。

具体地,所述处理方法还包括:

e1:控制所述交易服务器存储所述商品处理结果,以在重新接收到所述游戏服务器发送的相同商品寄售请求后,直接将存储的商品处理结果返回至所述游戏服务器。

在本申请实施例中,在交易服务器执行对应的商品寄售请求结束后,将得到的商品处理结果进行持久化存储,在重新接收到游戏服务器发送的相同商品寄售请求后,直接将存储的商品处理结果返回至游戏服务器,节省结果返回时间,以提升交易请求处理的效率。

在一种可能的实时方式中,在交易服务器将商品处理结果发送至游戏服务器后,游戏服务器会返回结果收到的反馈信息至交易服务器,在交易服务器接收到游戏服务器会返回结果收到的反馈信息后,为了节省交易服务器的存储空间,交易服务器在确定游戏服务器执行成功后,将持久化存储的商品处理结果删除。

进一步的,在游戏服务器接收到交易服务器反馈的商品处理结果指示虚拟商品上架成功后,会通知玩家虚拟商品处理的最新进度。

具体地,在步骤“将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器”之后,所述处理方法还包括:

f1:控制所述游戏服务器生成商品寄售提示信息,以提示所述玩家通过所述交易服务器售卖所述目标虚拟商品。

在本申请实施例中,在游戏服务器接收到交易服务器返回的商品处理结果指示虚拟商品上架成功后,可以生成相应的寄售提示信息,以告知玩家目标虚拟商品上架成功,玩家可以通过交易服务售卖目标虚拟商品,或者是通过交易服务器跟踪目标虚拟商品的交易情况。

在一种可能的实施方式中,游戏服务器可以将本次持久化存储的商品寄售请求的状态设置为成功,并且在预设存储时间段后,将商品寄售请求删除,同时向交易服务器返回结果收到的反馈信息,告知交易服务器商品处理结果已经收到。

S103、当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

在本申请实施例中,对于游戏服务器来说,游戏服务器中的玩家数据是存储在游戏服务器中的角色数据文件中,具体地,是存储在游戏服务器的db文件中。db模块以一种接近自描述的格式序列化玩家数据并存放在db文件中,在玩家登陆后加载到游戏服内存中。游戏中对玩家数据的修改都是内存中的修改,直到下一次存盘发生时才序列化并落盘到db文件中,由于对db文件的修改是一种比较耗时的操作,所以当玩家数据根据商品处理请求处理后,发生改变时,并不会每次修改后都进行存盘操作。当游戏服务器宕机发生时,如果玩家数据有更新,但还没来得及发生一次存盘,则更新会丢失,即发生回档。

具体地,在一种可能的实施方式中,在步骤“更新后的目标版本号以及寄售的目标虚拟商品的商品标识发送至所述交易服务器”之后,所述处理方法还包括:

g1:按照预设时间间隔,控制所述游戏服务器将所述目标虚拟角色对应的目标版本号以及更新后的虚拟商品持有数量以及虚拟商品寄售数量关联存储至所述游戏服务器的角色数据文件中。

在本申请实施例中,按照预设时间间隔,控制游戏服务器进行存盘处理,控制游戏服务器将目标虚拟角色对应的目标版本号以及更新后的虚拟商品持有数量以及虚拟商品寄售数量关联存储至游戏服务器的角色数据文件中,若是,游戏服务器宕机重启后,可以根据目标版本号查找到最后一次存盘的请求比较交易服务器中的目标版本号,进而将游戏服务器以及交易服务器之间的数据保持一致。

在一种可能的实施方式中,在确定游戏服务器宕机后,将游戏服务器重启,并通过游戏服务器本次持久化存储的商品处理请求,从中筛选出商品寄售请求,根据商品寄售请求中保存的请求标识或者商品标识,向交易服务器请求相同请求标识或者商品标识的商品寄售请求中保存的目标版本号,检测交易服务器存储的目标版本号是否新于在游戏服务器存储的目标版本号,若是,确定交易服务器中的记载与游戏服务器不一致,按照游戏服务器中记载的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对交易服务器记录的虚拟物品的虚拟物品状态进行调整。

具体地,步骤“基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整”,包括:

h1:基于所述角色数据文件中存储的目标版本号、所述目标虚拟角色的虚拟商品持有数量以及虚拟商品寄售数量,对所述游戏服务器宕机重启后,所述交易服务器中的虚拟物品的虚拟物品状态进行调整。

在本申请实施例中,从角色数据文件中查找到对应的目标版本号、所述目标虚拟角色的虚拟商品持有数量以及虚拟商品寄售数量,对交易服务器中的目标虚拟商品的商品状态进行调整。

具体地,以目标版本号为单调递增的数值为例,若是确定出交易服务器中存储的目标版本号大于游戏服务器中的目标版本号,此时需要将交易服务器中目标虚拟商品调整至游戏服务器中记录的状态,以保证两者一致。

例如,若是玩家通过游戏服务器向交易服务器发送商品寄售请求,要求交易服务器将目标虚拟商品X上架,交易服务器在接收到商品寄售请求后,将目标虚拟商品X上架,在游戏服务器宕机回档后,并未记录目标虚拟商品X上架的处理过程,对于玩家控制的目标虚拟角色来说在背包中还是存储目标虚拟商品X,经过查验目标版本号可知,交易服务器的目标版本号大于游戏服务器中的目标交易版本号,此时,需要将交易服务器中上架的目标虚拟商品X下架处理,保证游戏系统中并未出现相同的虚拟商品,导致系统亏损的情况出现。

下面将通过具体示例,来对本申请实施例中的游戏虚拟商品交易的处理过程进行阐述,值得注意的是,本申请实施例中是以游戏服务器向交易服务器发送请求,执行虚拟商品购买以及上架的过程为例来进行说明:

请参阅图2,图2为本申请实施例所提供的游戏服务器与交易服务器之间的数据流转示意图,如图2所示,游戏服务器与交易服务器之间的通信过程为:

步骤1:玩家通过游戏服务器发起购买请求,检查基本条件。

步骤2:游戏服务器向交易服务器请求订单最新状态。

步骤3:交易服务器根据游戏服务器的请求,返回订单最新状态。

步骤4:游戏服务器在查验购买条件通过后,执行扣款流程。

步骤5:游戏服务器通知交易服务器购买请求。

步骤6:交易服务器检查订单状态、库存等条件。

步骤7:交易服务器检查不通过,通知游戏服务器退款。

步骤8:交易服务器检查通过,以版本号为条件发起商品表修改,若修改失败则从步骤6开始重复两次。

步骤9:重试后仍然修改失败,通知游戏服务器退款。

步骤10:交易服务器的商品表修改成功,修改商会存款表和交易记录。

步骤11:交易服务器通知游戏服务器购买成功及商品信息。

步骤12:游戏服务器通知玩家得到商品。

上述过程中发生错误的后果:

1.步骤5、步骤7以及步骤9中的消息丢失:

原因:网络问题/脚本报错/rpc模块出错/对端超时无响应/进程crash。

后果:买家丢失游戏币。

2.步骤11中的消息丢失:

原因:网络问题/脚本报错/rpc模块出错/对端超时无响应/进程crash。

后果:买家损失商品。

3.步骤12执行失败:

可能原因:买家已经不在线/背包满了。

后果:买家损失商品。

下面将继续阐述本申请实施例中虚拟商品上架过程:

一次成功的上架过程:

步骤1.游戏服务器发起上架请求:

a)取该玩家的目标版本号x;

b)序列化请求内容,在游戏服务器持久化;

c)玩家数据中删除商品信息,同时将其版本号修改为x+1;

d)发出RPC请求到微服务。

步骤2.交易服务器收到上架请求:

a)先将请求插入MongoDB的请求表中,其中请求状态为请求收到;

b)请求表插入成功后,开始执行上架请求:将商品信息放入商品表,状态为上架中;

c)商品表插入成功后,更新请求表中的请求结果并将请求状态置为执行成功;

d)发RPC请求到游戏服务器通知执行成功。

步骤3.游戏服务器收到请求结果:

a)通知玩家上架成功;

b)将本地持久化的请求状态置为成功;

c)回复交易服务器请求已收到。

步骤4.交易服务器收到游戏服务器确认:

a)删除请求表中对应请求。

下面阐述上架中各步骤可能出错的情况及本申请实施例中对应的处理方式:

情况一:上述1d步出错,游戏服务器发给交易服务器的上架请求丢失,交易服务器未收到:

a)游戏服务器在发出请求前已持久化请求内容;

b)游戏服务器会有心跳逻辑检查已超时未收到请求结果的请求,并重新发出请求;

c)超时也可能只是网络拥塞,因此可能多个相同的重试请求。在交易服务器端的请求表以请求号为唯一索引,重复的请求会在2a步插入失败,从而被忽略,不会重复执行。

情况二:上述2d步出错,游戏服务器未收到请求结果:

a)游戏服务器心跳逻辑检查超时请求,会重新发出请求;

b)交易服务器会发现请求中有相同请求号且状态为执行成功的请求,所以会直接回复请求结果。

情况三:上述过程中,游戏服务器发生宕机:

a)游戏服务器宕机重启后,检查游戏服务器本地持久化的各请求,并将请求中存储的玩家版本号p(交易服务器处存储的)与宕机重启后玩家数据中的版本号q对比。如果p>q,则说明发生了宕机回档,通知交易服务器将该请求中对应的商品从商品表中删除。

本申请实施例提供的游戏虚拟商品交易的处理方法,响应于玩家发出的虚拟商品寄售指令,控制游戏服务器基于虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新目标虚拟角色对应的目标版本号,将包含目标版本号的商品寄售请求发送至交易服务器;控制交易服务器存储目标版本号,并基于目标虚拟商品的商品标识将交易服务器中的虚拟商品表中,目标虚拟商品的商品状态更新为上架中,同时将目标虚拟商品的商品状态更新成功的商品处理结果发送至游戏服务器。当游戏服务器宕机重启后,若是游戏服务器中存储的目标版本号与交易服务器中存储的目标版本号不一致,且交易服务器存储的目标版本号新于在游戏服务器存储的目标版本号,则基于游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对交易服务器记录的虚拟物品的虚拟物品状态进行调整。在本申请实施例中,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。

基于同一发明构思,本申请实施例中还提供了与游戏虚拟商品交易的处理方法对应的游戏虚拟商品交易的处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述游戏虚拟商品交易的处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

请参阅图3、图4,图3为本申请实施例所提供的一种游戏虚拟商品交易的处理装置的结构示意图之一,图4为本申请实施例所提供的一种游戏虚拟商品交易的处理装置的结构示意图之二。如图3中所示,所述处理装置300包括:

请求发送模块310,用于响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识;

结果返回模块320,用于控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态;

商品状态调整模块330,用于当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括数据存储模块340,所述数据存储模块340用于:

按照预设时间间隔,控制所述游戏服务器将所述目标虚拟角色对应的目标版本号以及更新后的虚拟商品持有数量以及虚拟商品寄售数量关联存储至所述游戏服务器的角色数据文件中;

所述商品状态调整模块330在用于基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整时,所述商品状态调整模块330用于:

基于所述角色数据文件中存储的目标版本号、所述目标虚拟角色的虚拟商品持有数量以及虚拟商品寄售数量,对所述游戏服务器宕机重启后,所述交易服务器中的虚拟物品的虚拟物品状态进行调整。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括请求存储模块350,所述请求存储模块350用于:

控制所述游戏服务器存储所述商品寄售请求,并在所述游戏服务器发出商品寄售请求后的预设时间段内并未接收到所述交易服务器发送的商品处理结果时,将存储的商品寄售请求重新发送至所述交易服务器,并接收所述交易服务器返回的商品处理结果。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括请求查重模块360,所述请求查重模块360用于:

控制所述交易服务器基于接收到的商品寄售请求中包含的请求标识,查找在所述请求列表中,是否已经存储有所述商品寄售请求;

若所述请求列表中已经存储有所述商品寄售请求,忽略所述商品寄售请求;

若所述请求列表中并未存储有所述商品寄售请求,将所述商品寄售请求插入到所述请求列表中。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括结果存储模块370,所述结果存储模块370用于:

控制所述交易服务器存储所述商品处理结果,以在重新接收到所述游戏服务器发送的相同商品寄售请求后,直接将存储的商品处理结果返回至所述游戏服务器。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括网络异常预警模块380,所述网络异常预警模块380用于:

检测在预设时间段内所述游戏服务器向所述交易服务器发送的商品寄售请求的次数是否超过预设次数;

若超过,生成网络异常报警信息。

在一种可能的实施方式中,如图4所示,所述处理装置300还包括提示信息展示模块390,所述提示信息展示模块390用于:

控制所述游戏服务器生成商品寄售提示信息,以提示所述玩家通过所述交易服务器售卖所述目标虚拟商品。

在一种可能的实施方式中,所述目标虚拟角色对应的目标版本号用于表征所述目标虚拟角色的目标商品持有数量的变化次数,当所述目标虚拟角色的目标商品持有数量更新时,所述目标版本号同时进行更新;

响应于以下任意一种行为,对所述目标虚拟角色的目标商品持有数量进行更新:

所述目标虚拟角色购买虚拟商品、所述目标虚拟角色将拥有的虚拟商品售卖给其他虚拟角色。

在一种可能的实施方式中,所述结果返回模块320在用于基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中时,所述结果返回模块320用于:

控制所述交易服务器将所述目标虚拟商品的商品标识写入所述虚拟商品表中,并执行针对于所述目标虚拟商品的上架操作,以及将所述虚拟商品表中记录的所述商品标识对应的商品状态更新为上架中。

本申请实施例提供的游戏虚拟商品交易的处理装置,响应于玩家发出的虚拟商品寄售指令,控制游戏服务器基于虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新目标虚拟角色对应的目标版本号,将包含目标版本号的商品寄售请求发送至交易服务器;控制交易服务器存储目标版本号,并基于目标虚拟商品的商品标识将交易服务器中的虚拟商品表中,目标虚拟商品的商品状态更新为上架中,同时将目标虚拟商品的商品状态更新成功的商品处理结果发送至游戏服务器。当游戏服务器宕机重启后,若是游戏服务器中存储的目标版本号与交易服务器中存储的目标版本号不一致,且交易服务器存储的目标版本号新于在游戏服务器存储的目标版本号,则基于游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对交易服务器记录的虚拟物品的虚拟物品状态进行调整。在本申请实施例中,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。

请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。

所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,使得所述处理器510在运行时执行以下指令:

响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识;

控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态;

当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

一种可能的实施方式中,所述目标虚拟角色对应的目标版本号用于表征所述目标虚拟角色的目标商品持有数量的变化次数,当所述目标虚拟角色的目标商品持有数量更新时,所述目标版本号同时进行更新;

响应于以下任意一种行为,对所述目标虚拟角色的目标商品持有数量进行更新:

所述目标虚拟角色购买虚拟商品、所述目标虚拟角色将拥有的虚拟商品售卖给其他虚拟角色。

一种可能的实施方式中,处理器510执行的指令中,还包括:

按照预设时间间隔,控制所述游戏服务器将所述目标虚拟角色对应的目标版本号以及更新后的虚拟商品持有数量以及虚拟商品寄售数量关联存储至所述游戏服务器的角色数据文件中;

所述基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整,包括:

基于所述角色数据文件中存储的目标版本号、所述目标虚拟角色的虚拟商品持有数量以及虚拟商品寄售数量,对所述游戏服务器宕机重启后,所述交易服务器中的虚拟物品的虚拟物品状态进行调整。

一种可能的实施方式中,处理器510执行的指令中,所述基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,包括:

控制所述交易服务器将所述目标虚拟商品的商品标识写入所述虚拟商品表中,并执行针对于所述目标虚拟商品的上架操作,以及将所述虚拟商品表中记录的所述商品标识对应的商品状态更新为上架中。

一种可能的实施方式中,处理器510执行的指令中,还包括:

控制所述游戏服务器存储所述商品寄售请求,并在所述游戏服务器发出商品寄售请求后的预设时间段内并未接收到所述交易服务器发送的商品处理结果时,将存储的商品寄售请求重新发送至所述交易服务器,并接收所述交易服务器返回的商品处理结果。

一种可能的实施方式中,所述交易服务器中还存储有请求列表,所述请求列表用于存储所述游戏服务器发送的商品处理请求;所述商品处理请求包括商品寄售请求;处理器510执行的指令中,还包括:

控制所述交易服务器基于接收到的商品寄售请求中包含的请求标识,查找在所述请求列表中,是否已经存储有所述商品寄售请求;

若所述请求列表中已经存储有所述商品寄售请求,忽略所述商品寄售请求;

若所述请求列表中并未存储有所述商品寄售请求,将所述商品寄售请求插入到所述请求列表中。

一种可能的实施方式中,处理器510执行的指令中,还包括:

控制所述交易服务器存储所述商品处理结果,以在重新接收到所述游戏服务器发送的相同商品寄售请求后,直接将存储的商品处理结果返回至所述游戏服务器。

一种可能的实施方式中,处理器510执行的指令中,还包括:

检测在预设时间段内所述游戏服务器向所述交易服务器发送的商品寄售请求的次数是否超过预设次数;

若超过,生成网络异常报警信息。

一种可能的实施方式中,处理器510执行的指令中,还包括:

控制所述游戏服务器生成商品寄售提示信息,以提示所述玩家通过所述交易服务器售卖所述目标虚拟商品。

通过上述方式,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。同时,同过在游戏服务器处存储商品寄售请求以及在交易服务器处存储商品处理结果,可以在商品寄售请求重试时,快速向交易服务器发送商品寄售请求或者向游戏服务器快速返回商品处理结果,有助于提升玩家交易请求处理的效率。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,使得该计算机程序被处理器运行时执行以下指令:

响应于玩家发出的虚拟商品寄售指令,控制所述游戏服务器基于所述虚拟商品寄售指令更新目标虚拟角色的目标商品持有数量以及目标商品寄售数量,并更新所述目标虚拟角色对应的目标版本号,以及控制所述游戏服务器向所述交易服务器发送商品寄售请求;所述商品寄售请求中包括所述目标版本号以及寄售的目标虚拟商品的商品标识;

控制所述交易服务器存储所述商品寄售请求中的目标版本号,并基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,并将所述目标虚拟商品的商品状态更新成功的商品处理结果发送至所述游戏服务器,以通过所述交易服务器售卖所述目标虚拟商品;所述虚拟商品表中存储有所述游戏服务器请求寄售的至少一个寄售虚拟商品以及每个寄售虚拟商品的商品状态;

当所述游戏服务器宕机重启后,检测在所述交易服务器存储的目标版本号是否新于在所述游戏服务器存储的目标版本号,若是,则基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整。

一种可能的实施方式中,所述目标虚拟角色对应的目标版本号用于表征所述目标虚拟角色的目标商品持有数量的变化次数,当所述目标虚拟角色的目标商品持有数量更新时,所述目标版本号同时进行更新;

响应于以下任意一种行为,对所述目标虚拟角色的目标商品持有数量进行更新:

所述目标虚拟角色购买虚拟商品、所述目标虚拟角色将拥有的虚拟商品售卖给其他虚拟角色。

一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:

按照预设时间间隔,控制所述游戏服务器将所述目标虚拟角色对应的目标版本号以及更新后的虚拟商品持有数量以及虚拟商品寄售数量关联存储至所述游戏服务器的角色数据文件中;

所述基于所述游戏服务器中存储的目标版本号对应的虚拟商品持有数量以及虚拟商品寄售数量,对所述交易服务器记录的虚拟物品的虚拟物品状态进行调整,包括:

基于所述角色数据文件中存储的目标版本号、所述目标虚拟角色的虚拟商品持有数量以及虚拟商品寄售数量,对所述游戏服务器宕机重启后,所述交易服务器中的虚拟物品的虚拟物品状态进行调整。

一种可能的实施方式中,计算机可读存储介质执行的指令中,所述基于所述目标虚拟商品的商品标识将所述交易服务器中的虚拟商品表中,所述目标虚拟商品的商品状态更新为上架中,包括:

控制所述交易服务器将所述目标虚拟商品的商品标识写入所述虚拟商品表中,并执行针对于所述目标虚拟商品的上架操作,以及将所述虚拟商品表中记录的所述商品标识对应的商品状态更新为上架中。

一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:

控制所述游戏服务器存储所述商品寄售请求,并在所述游戏服务器发出商品寄售请求后的预设时间段内并未接收到所述交易服务器发送的商品处理结果时,将存储的商品寄售请求重新发送至所述交易服务器,并接收所述交易服务器返回的商品处理结果。

一种可能的实施方式中,计算机可读存储介质执行的指令中,所述交易服务器中还存储有请求列表,所述请求列表用于存储所述游戏服务器发送的商品处理请求;所述商品处理请求包括商品寄售请求;还包括:

控制所述交易服务器基于接收到的商品寄售请求中包含的请求标识,查找在所述请求列表中,是否已经存储有所述商品寄售请求;

若所述请求列表中已经存储有所述商品寄售请求,忽略所述商品寄售请求;

若所述请求列表中并未存储有所述商品寄售请求,将所述商品寄售请求插入到所述请求列表中。

一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:

控制所述交易服务器存储所述商品处理结果,以在重新接收到所述游戏服务器发送的相同商品寄售请求后,直接将存储的商品处理结果返回至所述游戏服务器。

一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:

检测在预设时间段内所述游戏服务器向所述交易服务器发送的商品寄售请求的次数是否超过预设次数;

若超过,生成网络异常报警信息。

一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:

控制所述游戏服务器生成商品寄售提示信息,以提示所述玩家通过所述交易服务器售卖所述目标虚拟商品。

通过上述方式,在玩家通过游戏服务器向交易服务器提出商品寄售请求时,同时分别在游戏服务器以及交易服务器处记录对应的目标版本号,在游戏服务器宕机重启后,通过比较游戏服务器以及交易服务器处记录对应的目标版本号,对交易服务器记录的虚拟物品的虚拟物品状态进行调整,以保持游戏服务器与交易服务器处的数据一致,有助于提升玩家交易请求处理的准确性。同时,同过在游戏服务器处存储商品寄售请求以及在交易服务器处存储商品处理结果,可以在商品寄售请求重试时,快速向交易服务器发送商品寄售请求或者向游戏服务器快速返回商品处理结果,有助于提升玩家交易请求处理的效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种游戏信息处理方法和装置、电子设备、存储介质
  • 虚拟事件处理方法及装置、电子设备和存储介质
  • 一种模型轻量化处理方法、装置及电子设备
  • 一种样本数据处理方法、样本数据处理装置及电子设备
  • 一种消息处理方法、装置、电子设备及存储介质
  • 游戏中虚拟物资的处理方法、装置、电子设备及存储介质
  • 游戏中虚拟角色的处理方法、装置以及电子设备
技术分类

06120115982505