欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 一种游戏计时方法及装置独创技术43354字

一种游戏计时方法及装置

2021-03-29 11:51:25

一种游戏计时方法及装置

  技术领域

  本申请涉及互联网技术领域,特别涉及一种游戏计时方法及装置、计算设备和计算机可读存储介质。

  背景技术

  随着互联网技术的发展,网络游戏也日益普及,越来越多的人开始玩网络游戏,也接受为网络游戏支付费用的行为。

  在网络游戏中的一种游戏类型是用户预先购买游戏时长,用户在实际游戏过程中使用多长时间就在购买的游戏时长中扣除对应的时长,但由于网络波动或服务器出现宕机,可能会出现用户无法玩游戏但计时却没有停止,或者用户在游戏中却没有计时等问题,会给用户或游戏运营商带来损失。

  因此,如何保证游戏计时一致性,维护用户和游戏运营商的利益就成为技术人员亟待解决的问题。

  发明内容

  有鉴于此,本申请实施例提供了一种游戏计时方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

  根据本申请实施例的第一方面,提供了一种游戏计时方法,应用于游戏平台服务,包括:

  接收客户端发送的游戏登录指令;

  响应于所述游戏登录指令启动对应的游戏进程;

  在所述游戏进程启动成功的情况下,记录启动时间点并向计时服务发送开始计时指令,监控所述游戏进程的运行状态;

  在所述游戏进程的运行状态为异常的情况下,终止所述游戏进程,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,监控所述游戏进程的运行状态,包括:

  接收所述游戏进程发送的心跳包;

  在两个相邻心跳包的时间间隔大于预设阈值的情况下,确定所述游戏进程的运行状态为异常;或

  在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,确定所述游戏进程的运行状态为正常。

  可选的,所述方法还包括:

  在所述游戏进程的运行状态为正常的情况下,接收所述客户端发送的游戏登出指令;

  响应于所述游戏登出指令终止所述游戏进程;

  在所述游戏进程结束成功的情况下,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,所述方法还包括:

  在所述游戏进程的运行状态为正常的情况下,接收所述计时服务发送的时长不足通知;

  根据所述时长不足通知终止所述游戏进程,并将所述时长不足通知发送至所述客户端;

  在所述游戏进程结束成功的情况下,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,所述方法还包括:

  获取游戏平台用户列表;

  将所述游戏平台用户列表作为心跳包协议发送至所述计时服务。

  根据本申请实施例的第二方面,提供了一种游戏计时方法,应用于计时服务,包括:

  接收游戏平台服务发送的开始计时指令,其中,所述开始计时指令中包括启动时间点;

  根据所述启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态;

  在所述游戏平台服务的运行状态为异常的情况下,记录异常时间点,终止计时并根据所述异常时间点和所述启动时间点确定游戏时长。

  可选的,监控所述游戏平台服务的运行状态,包括:

  接收所述游戏平台服务发送的心跳包;

  在两个相邻心跳包的时间间隔大于预设阈值的情况下,所述游戏平台服务的运行状态为异常;或

  在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,所述游戏平台服务的运行状态为正常。

  可选的,所述心跳包包括游戏平台用户列表;

  所述方法还包括:

  获取计时用户列表,并将所述计时用户列表与所述游戏平台用户列表进行比对;

  在所述计时用户列表与所述游戏平台用户列表不同的情况下,根据所述游戏平台用户列表更新所述计时用户列表。

  可选的,所述方法还包括:

  在所述游戏平台服务的运行状态为正常且所述游戏时长大于或等于预设阈值的情况下,向所述游戏平台服务发送时长不足通知。

  可选的,所述方法还包括:

  在所述游戏平台服务的运行状态为正常的情况下,接收所述游戏平台服务发送的终止计时指令,其中,所述终止计时指令包括终止时间点;

  根据所述终止时间点和所述启动时间点确定游戏时长。

  根据本申请实施例的第三方面,提供了一种游戏计时装置,配置于游戏平台,包括:

  第一接收模块,被配置为接收客户端发送的游戏登录指令;

  启动模块,被配置为响应于所述游戏登录指令启动对应的游戏进程;

  第一监控模块,被配置为记录启动时间点并向计时服务发送开始计时指令,监控所述游戏进程的运行状态;

  第一确定模块,被配置为在所述游戏进程的运行状态为异常的情况下,终止所述游戏进程,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  根据本申请实施例的第四方面,提供了一种游戏计时装置,配置于计时服务器,包括:

  第四接收模块,被配置为接收游戏平台服务发送的开始计时指令,其中,所述开始计时指令中包括启动时间点。

  第二监控模块,被配置为根据所述启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态。

  第四确定模块,被配置为在所述游戏平台服务的运行状态为异常的情况下,记录异常时间点,终止计时并根据所述异常时间点和所述启动时间点确定游戏时长。

  根据本申请实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述游戏计时方法的步骤。

  根据本申请实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述游戏计时方法的步骤。

  本申请实施例中提供的应用于游戏平台服务的游戏计时方法,根据接收到的游戏登录指令启动对应的游戏进程,在游戏进程启动成功的情况下,记录启动时间点并向计时服务器发送计时指令,监控所述游戏进程的运行状态,可以在游戏进程出现异常的情况下及时终止游戏进程,记录终止时间点并向计时服务发送终止计时指令,并根据终止时间点和启动时间点确定本次游戏时长,避免出现因网络出现波动导致用户无法正常玩游戏的情况下持续统计游戏时长,维护了用户利益,保证了游戏计时的一致性。

  本申请实施例中提供的应用于计时服务的游戏计时方法,根据游戏平台服务发送的开始计时指令中的启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态,当所述游戏平台服务的运行状态为异常的情况下,及时记录异常时间点,并根据异常时间点和启动时间点确定本次游戏时长,避免了因网络出现波动导致的游戏平台服务宕机,进而出现的计时不一致的问题。

  附图说明

  图1是本申请实施例提供的计算设备的结构框图;

  图2是本申请实施例提供的应用于游戏平台服务的游戏计时方法的流程图;

  图3是本申请实施例提供的应用于计时服务的游戏计时方法的流程图;

  图4是本申请实施例提供的游戏计时系统的拓扑图;

  图5是本申请实施例提供的交互时序图;

  图6是本申请实施例提供的配置于游戏平台的游戏计时装置的结构示意图;

  图7是本申请实施例提供的配置于计时服务器的游戏计时装置的结构示意图。

  具体实施方式

  在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

  在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  首先,对本发明一个或多个实施例涉及的名词术语进行解释。

  心跳包:在客户端和服务器间定时通知对方自己状态的一个自定义协议,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。

  在本申请中,提供了一种游戏计时方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

  图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

  计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

  在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

  计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

  其中,处理器120可以执行图2所示的应用于游戏平台服务的游戏计时方法中的步骤。图2示出了根据本申请一实施例的游戏计时方法的流程图,所述方法应用于游戏平台服务,游戏平台服务运行在服务器中,所述方法包括步骤202至步骤208。

  步骤202:接收客户端发送的游戏登录指令。

  客户端为用户使用玩游戏的终端设备,可以是手机、个人计算机、平板电脑等,游戏可以为网络游戏,也可以为云游戏。

  用户在客户端中输入用户名和密码,点击登录游戏控件生成对应的游戏登录指令,并将游戏登录指令发送至服务器的游戏平台服务。

  用户体验游戏的途径可以为游戏对应的应用程序、APP或网页中的任意一项。

  需要注意的是,用户在客户端中输入用户名和密码,在客户端中完成用户身份的认证,在用户身份认证成功的情况下,生成对应的通行令牌,根据用户名、通行令牌和用户体验游戏的途径生成游戏登录指令。在客户端完成用户身份的认证并生成通行令牌可以避免传输用户的私密信息(密码),保证了用户的隐私。参见表1,表1示出了游戏登录指令的参数说明。

  表1

  

  

  步骤204:响应于所述游戏登录指令启动对应的游戏进程。

  游戏平台服务在接收到游戏登录指令后,启动与所述游戏登录指令对应的游戏进程,在游戏为云游戏的情况下,根据所述游戏登录指令启动对应的云游戏客户端,并在所述云游戏客户端中启动对应的云游戏,

  接收游戏进程的启动响应信息,当游戏进程启动成功的情况下接收启动成功信息,在游戏进程启动失败的情况下接收启动失败信息。在游戏进程启动失败的情况下,不进行游戏计时,可以重新尝试启动游戏进程。

  步骤206:在所述游戏进程启动成功的情况下,记录启动时间点并向计时服务发送开始计时指令,监控所述游戏进程的运行状态。

  当游戏进程启动成功后,记录游戏启动的启动时间点,并向计时服务发送开始计时指令,所述计时指令中包括启动时间点。

  可选的,监控所述游戏进程的运行状态,包括:接收所述游戏进程发送的心跳包;在两个相邻心跳包的时间间隔大于预设阈值的情况下,确定所述游戏进程的运行状态为异常;或在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,确定所述游戏进程的运行状态为正常。

  游戏进程按照一定时间间隔向游戏平台服务发送心跳包,所述心跳包中的协议内容可以是任何形式,如时间戳、用户账户等信息,心跳包的作用是用于检测确定游戏进程与游戏平台服务之间保持连接,当两个相邻的心跳包之间的时间间隔大于预设阈值的情况下,则确定游戏进程的运行状态为异常,当两个相邻的心跳包之间的时间间隔小于等于预设阈值的情况下,则确定游戏进程的运行状态为正常。

  参见表2,表2示出了心跳包的一种示意协议。

  表2

  在本申请提供的一具体实施方式中,接收游戏进程每隔1秒发送一次的心跳包,心跳包中的协议内容为时间戳,时间间隔的预设阈值设置为1.5秒,游戏平台服务接收游戏进程发送的心跳包,为了便于理解,将第j个心跳包的接收时间确定为第0秒,第j+1个心跳包的接收时间为第1.2秒,则两个心跳包之间的时间间隔为1.2秒,小于预设阈值的1.5秒,则确定游戏进程的运行状态为正常。

  在本申请提供的另一具体实施方式中,将第j个心跳包的接收时间确定为0秒,第j+1个心跳包的接收时间为1.8秒,则两个心跳包之间的时间间隔为1.8秒,大于预设阈值的1.5秒,则确定游戏进程的状态为异常。

  需要注意的是,本申请中提到的游戏进程异常处理方法仅作为示意性说明,在实际应用中,预设阈值的设置可以根据实际应用的不同做相应改变,如可以设置为连续30秒没有收到心跳包,则认定游戏进程异常。

  可选的,所述方法还包括:获取游戏平台用户列表;将所述游戏平台用户列表作为心跳包协议发送至所述计时服务。

  在实际应用中,游戏平台服务记录有游戏平台用户列表,在游戏平台服务中记录的游戏平台用户列表为当前正在玩游戏的用户的列表,将所述游戏平台用户列表作为心跳包的协议发送至计时服务器,用于确定正在玩游戏的活跃用户。

  步骤208:在所述游戏进程的运行状态为异常的情况下,终止所述游戏进程,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  游戏进程的运行状态为异常的情况下,终止所述游戏进程并记录终止时间点,向所述计时服务发送终止计时指令,其中,终止计时指令中包括终止时间点。根据终止时间点和启动时间点确定用户本次登录游戏的游戏时长。

  可选的,所述方法还包括:在所述游戏进程的运行状态为正常的情况下,接收所述客户端发送的游戏登出指令;响应于所述游戏登出指令终止所述游戏进程;在所述游戏进程结束成功的情况下,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  在游戏进程的运行状态为正常的情况下,接收客户端发送的游戏登出指令,其中,所述登出指令中包括用户名。

  参见表3,表3示出了游戏登出指令的参数说明。

  表3

  根据所述游戏登出指令终止所述游戏进程,并记录终止时间,向所述计时服务发送终止计时指令,其中,终止计时指令中包括终止时间点。根据终止时间点和启动时间点确定用户本次登录游戏的游戏时长。

  根据登出指令中的用户名更新游戏平台用户列表,使该用户由活跃用户变为非活跃用户。

  可选的,所述方法还包括:在所述游戏进程的运行状态为正常的情况下,接收所述计时服务发送的时长不足通知;根据所述时长不足通知终止所述游戏进程,并将所述时长不足通知发送至所述客户端;在所述游戏进程结束成功的情况下,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  在游戏进程的运行状态为正常的情况下,接收计时服务发送的时长不足通知,此时用户预先购买的游戏时长不足,需要将所述时长不足通知发送至客户端,通知用户续购游戏时长,同时结束游戏进程,并记录终止时间,向所述计时服务发送终止计时指令,其中,终止计时指令中包括终止时间点。根据终止时间点和启动时间点确定用户本次登录游戏的游戏时长。

  在本申请实施例提供的游戏计时方法,应用于游戏平台服务,接收到用户通过客户端发送的游戏登录指令,并启动对应的游戏进程,在游戏进程启动成功的情况下,记录启动时间点并向计时服务发送计时指令,同时监控游戏进程的运行状态,可以在游戏进程出现异常的情况下及时终止游戏进程并记录终止时间点,并将所述终止时间点发送至计时服务,根据终止时间点和启动时间点确定本次游戏时长,避免出现用户无法正常玩游戏或游戏平台服务没有收到用退出游戏进程的指令而导致的持续统计游戏时长的问题,维护了用户的利益,保证了游戏计时的一致性。

  其次,当用户的预先购买的游戏时长不足时,接收计时服务发送的时长不足通知,将所述时长不足通知转发至客户端并退出游戏进程,维护了游戏运营商的利益,保证了游戏计时的一致性。

  最后,获取游戏平台用户列表;将所述游戏平台用户列表作为心跳包协议发送至所述计时服务,既可以通过心跳包的形式保证与计时服务的连接,又可以将活跃用户发送至计时服务,使计时服务根据游戏平台用户列表更新已经退出游戏却还在计时的用户和没有计时却在游戏的用户,即维护了用户的利益,又维护了游戏运营商的利益,进一步保证了游戏计时的一致性。

  处理器120还可以执行图3所示的应用于计时服务的游戏计时方法中的步骤。图3示出了根据本申请一实施例的游戏计时方法的流程图,所述方法应用于计时服务,计时服务运行在服务器中,所述方法包括步骤302至步骤306。

  步骤302:接收游戏平台服务发送的开始计时指令,其中,所述开始计时指令中包括启动时间点。

  计时服务接收游戏平台发送的开始计时指令,其中,所述开始计时指令中包括启动时间点和用户名,当计时服务接收到游戏平台发送的任意指令后,都会返回相应的响应信息,当计时服务因网络不佳或计时服务宕机无法返回相应的响应信息的情况下,可以通过重试机制接收到游戏平台发送的指令,并返回相应的响应信息。

  步骤304:根据所述启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态。

  根据开始计时指令中的启动时间点统计游戏时长,监控游戏平台服务的运行状态,并根据游戏平台的运行状态做相应处理。

  可选的,监控所述游戏平台服务的运行状态,包括:接收所述游戏平台服务发送的心跳包;在两个相邻心跳包的时间间隔大于预设阈值的情况下,所述游戏平台服务的运行状态为异常;或在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,所述游戏平台服务的运行状态为正常。

  游戏平台服务按照一定时间间隔向计时服务发送心跳包,心跳包的作用是用于检测确定游戏平台服务与计时服务之间保持连接,当两个相邻的心跳包之间的时间间隔大于预设阈值的情况下,则确定游戏平台服务的运行状态为异常,当两个相邻的心跳包之间的时间间隔小于等于预设阈值的情况下,则确定游戏平台服务的运行状态为正常。

  监控所述游戏平台服务的运行状态的详细解释可参见上述步骤206中关于监控所述游戏进程的运行状态的解释,在此就不在赘述。

  可选的,所述心跳包包括游戏平台用户列表;所述方法还包括:解析所述心跳包获取计时用户列表,并将所述计时用户列表与所述游戏平台用户列表进行比对;在所述计时用户列表与所述游戏平台用户列表不同的情况下,根据所述游戏平台用户列表更新所述计时用户列表。

  在实际应用中,游戏平台服务发送至计时服务的心跳包中包括游戏平台用户列表,所述游戏平台用户列表记录的游戏平台服务中记录的活跃用户,获取计时服务中的计时用户列表,所述计时用户列表记录的是在计时服务中正在进行游戏计时的计时用户。

  将游戏平台用户列表与计时用户列表进行比对,若游戏平台用户列表与计时用户列表相同,则说明正在玩游戏的用户同时也在进行游戏计时,属于正常状态。若游戏平台用户列表与计时用户列表不同,则说明有异常用户,这里的异常用户包括正在玩游戏而没有计时的用户和/或没有玩游戏而在计时的用户,根据游戏平台用户列表更新所述计时用户列表,为正在玩游戏而没有计时的用户开始计时,为没有玩游戏却依然在计时的用户停止计时。即维护了用户的利益,又维护了游戏运营商的利益,保证了游戏计时的一致性。

  参见表4,表4示出了游戏平台用户列表和计时用户列表的对比信息。

  表4

  

  

  如表4所示,经过比对,C、D、E三个用户为正常用户,A、B、F、G、H为异常用户,其中A、B为正在玩游戏而没有计时的用户,F、G、H为没有玩游戏却依然在计时的用户,根据游戏平台用户列表更新计时用户列表,为A、B用户开始计时,为F、G、H停止计时,实现了游戏平台服务与计时服务之间的对账,保证了游戏计时的一致性。

  步骤306:在所述游戏平台服务的运行状态为异常的情况下,记录异常时间点,终止计时并根据所述异常时间点和所述启动时间点确定游戏时长。

  在游戏平台服务的运行状态异常的情况下,记录异常时间点并终止计时,此时根据异常时间点和启动时间点确定用户本次游戏的游戏时长,并在预先购买的游戏时长中扣除对应的游戏时长。

  可选的,所述方法还包括:在所述游戏平台服务的运行状态为正常且所述游戏时长大于或等于预设阈值的情况下,向所述游戏平台服务发送时长不足通知。

  在游戏平台服务的运行状态为正常的情况下,持续统计游戏时长,并将游戏时长与预设阈值进行比对,当游戏时长大于或等于预设阈值的情况下,向所述游戏平台服务发送时长不足通知。

  在实际应用中,预设阈值的确定可以有多种情况,如预设阈值可以为用户预先购买的游戏时长的百分比,也可以为用户预先购买的游戏时长扣除缓存时长,缓存时长用于提醒用户时长不足。

  在本申请提供的一具体实施方式中,以预设阈值为用户预先购买的游戏时长的百分之九十为例,用户预先购买了100分钟的游戏时长,则预设阈值为90分钟,当游戏时长大于或等于90分钟时,向游戏平台发送时长不足通知“游戏时长不足百分之九十”。

  在本申请提供的另一具体实施方式中,以预设阈值为用户预先购买的游戏时长扣除缓存时长为例,用户预先购买了100分钟的游戏时长,缓存时长为5分钟,则预设阈值为95分钟,当游戏时长大于或等于95分钟时,向游戏平台发送时长不足通知“游戏时长不足5分钟”。

  所述方法还包括:在所述游戏平台服务的运行状态为正常的情况下,接收所述游戏平台服务发送的终止计时指令,其中,所述终止计时指令包括终止时间点;根据所述终止时间点和所述启动时间点确定游戏时长。

  在游戏平台服务的运行状态为正常的情况下,接收游戏平台服务发送的终止计时指令,根据终止计时指令中的终止时间点和启动时间点确定游戏时长,并在预先购买的游戏时长中扣除对应的游戏时长。

  在本申请实施例提供的游戏计时方法,应用于计时服务,根据游戏平台服务发送的开始计时指令中的启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态,当游戏平台服务的运行状态为异常的情况下,记录异常时间点,并根据异常时间点和启动时间点确定本次游戏时长,在预先购买的游戏时长中扣除对应的游戏时长,避免了因网络波动导致的游戏平台服务宕机进而出现的计时不一致的问题,维护了用户的利益,保证了游戏计时的一致性。

  其次,当用户预先购买的游戏时长不足的情况下,生成时长不足通知并发送至游戏平台服务,维护了游戏运营商的利益,保证了游戏计时的一致性。

  最后,根据游戏平台用户列表更新计时用户列表,为正在玩游戏而没有计时的用户开始计时,为没有玩游戏却依然在计时的用户停止计时。即维护了用户的利益,又维护了游戏运营商的利益,保证了游戏计时的一致性。

  下面结合图4和图5,对本申请提供的游戏计时方法进行进一步的解释说明。其中,图4示出了本申请一实施例提供的游戏计时系统的拓扑图,包括客户端、游戏平台服务、计时服务和游戏进程,其中计时服务包括Redis数据库和SQL数据库,Redis用于保存缓存数据,SQL用于保存历史数据,先在Redis中判断数据是否存在,若存在,则直接返回缓存好的数据,若不存在则在SQL数据库中读取数据,并把读取到的数据缓存到Redis中。

  图5是本申请一个实施例提供的交互时序图,所述方法包括步骤502至步骤528。

  步骤502:客户端发送游戏登录指令至游戏平台服务。

  步骤504:游戏平台服务启动游戏进程。

  步骤506:游戏进程返回启动成功信息至游戏平台服务。

  步骤508:游戏平台服务记录启动时间点,监控所述游戏进程的运行状态。

  步骤5082:游戏平台服务通过接收游戏进程发送的第一心跳包监控游戏进程的运行状态。

  步骤510:游戏平台服务将开始计时指令发送至计时服务,其中开始计时指令中包括启动时间点。

  步骤512:计时服务根据启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态。

  步骤5122:计时服务通过接收游戏平台服务发送的第二心跳包监控游戏平台服务的运行状态。

  第二心跳包中包括游戏平台用户列表,当游戏平台用户列表与计时服务中的计时用户列表不同的情况下,根据游戏平台用户列表更新计时用户列表。

  游戏平台服务在监控到游戏进程的运行状态为异常的情况下,执行如下操作:

  步骤520:游戏平台服务终止游戏进程。

  步骤522:游戏平台服务记录终止时间点。

  步骤524:游戏平台服务发送终止计时指令至计时服务。

  步骤526:计时服务根据终止时间点和启动时间点确定游戏时长。

  计时服务在监控到游戏平台服务的运行状态为异常的情况下,执行如下操作:

  步骤526:记录异常时间点,并根据异常时间点和启动时间点确定游戏时长。

  计时服务在游戏平台服务的运行状态为正常的情况下,异步执行如下操作:

  步骤514:计时服务监控游戏时长是否大于预设时长。

  步骤516:在游戏时长大于预设时长的情况下,向游戏平台服务发送时长不足通知。

  步骤518:游戏平台服务向客户端发送时长不足通知。

  步骤520:游戏平台服务终止游戏进程。

  步骤522:游戏平台服务记录终止时间点。

  步骤524:游戏平台服务发送终止计时指令至计时服务。

  步骤526:计时服务根据终止时间点和启动时间点确定游戏时长。

  在游戏进程的运行状态为正常的情况下,所述方法还包括:

  步骤528:客户端发送游戏登出指令至游戏平台服务。

  步骤520:游戏平台服务终止游戏进程。

  步骤522:游戏平台服务记录终止时间点。

  步骤524:游戏平台服务发送终止计时指令至计时服务。

  步骤526:计时服务根据终止时间点和启动时间点确定游戏时长。

  本申请实施例中提供的游戏计时方法,通过游戏平台服务监控游戏进程,在游戏进程的运行状态为异常的情况下,结束游戏进程并确定游戏时长,保证了游戏计时的一致性,维护了用户的利益;在用户预先购买的游戏时长不足时,生成时长不足通知以通知客户端并退出游戏进程,保证了游戏计时的一致性,维护了游戏运营商的利益;通过对比游戏平台用户列表和计时用户列表,及时为正在玩游戏而没有计时的用户开始计时,为没有玩游戏却依然在计时的用户停止计时,进一步保证了游戏计时的一致性,维护了用户和游戏运营商的利益。

  与上述应用于游戏平台服务的游戏计时方法实施例相对应,本申请还提供了游戏计时装置实施例,图6示出了本申请一个实施例的游戏计时装置的结构示意图,所述装置配置于游戏平台。如图6所示,该装置包括:

  第一接收模块602,被配置为接收客户端发送的游戏登录指令。

  启动模块604,被配置为响应于所述游戏登录指令启动对应的游戏进程。

  第一监控模块606,被配置为记录启动时间点并向计时服务发送开始计时指令,监控所述游戏进程的运行状态。

  第一确定模块608,被配置为终止所述游戏进程,记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,所述第一监控模块606,进一步被配置为接收所述游戏进程发送的心跳包;在两个相邻心跳包的时间间隔大于预设阈值的情况下,确定所述游戏进程的运行状态为异常;或在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,确定所述游戏进程的运行状态为正常。

  可选的,所述装置还包括:

  第二接收模块,被配置为接收所述客户端发送的游戏登出指令。

  终止模块,被配置为响应于所述游戏登出指令终止所述游戏进程。

  第二确定模块,被配置为记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,所述装置还包括:

  第三接收模块,被配置为接收所述计时服务发送的时长不足通知。

  通知模块,被配置为根据所述时长不足通知终止所述游戏进程,并将所述时长不足通知发送至所述客户端。

  第三确定模块,被配置为记录终止时间点,向所述计时服务发送终止计时指令并根据所述启动时间点和所述终止时间点确定游戏时长。

  可选的,所述装置还包括:

  第一获取模块,被配置为获取游戏平台用户列表。

  第一发送模块,被配置为将所述游戏平台用户列表作为心跳包协议发送至所述计时服务。

  在本申请实施例提供的游戏计时装置,配置于游戏平台,接收到用户通过客户端发送的游戏登录指令,并启动对应的游戏进程,在游戏进程启动成功的情况下,记录启动时间点并向计时服务发送计时指令,同时监控游戏进程的运行状态,可以在游戏进程出现异常的情况下及时终止游戏进程并记录终止时间点,并将所述终止时间点发送至计时服务,根据终止时间点和启动时间点确定本次游戏时长,避免出现用户无法正常玩游戏或游戏平台服务没有收到用退出游戏进程的指令而导致的持续统计游戏时长的问题,维护了用户的利益,保证了游戏计时的一致性。

  其次,当用户的预先购买的游戏时长不足时,接收计时服务发送的时长不足通知,将所述时长不足通知转发至客户端并退出游戏进程,维护了游戏运营商的利益,保证了游戏计时的一致性。

  最后,获取游戏平台用户列表;将所述游戏平台用户列表作为心跳包协议发送至所述计时服务,既可以通过心跳包的形式保证与计时服务的连接,又可以将活跃用户发送至计时服务,使计时服务根据游戏平台用户列表更新已经退出游戏却还在计时的用户和没有计时却在游戏的用户,即维护了用户的利益,又维护了游戏运营商的利益,进一步保证了游戏计时的一致性。

  与上述应用于计时服务的游戏计时方法实施例相对应,本申请还提供了游戏计时装置实施例,图7示出了本申请一个实施例的游戏计时装置的结构示意图,所述装置配置于计时服务器。如图7所示,该装置包括:

  第四接收模块702,被配置为接收游戏平台服务发送的开始计时指令,其中,所述开始计时指令中包括启动时间点。

  第二监控模块704,被配置为根据所述启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态。

  第四确定模块706,被配置为在所述游戏平台服务的运行状态为异常的情况下,记录异常时间点,终止计时并根据所述异常时间点和所述启动时间点确定游戏时长。

  可选的,所述第二监控模块704,进一步被配置为接收所述游戏平台服务发送的心跳包;在两个相邻心跳包的时间间隔大于预设阈值的情况下,所述游戏平台服务的运行状态为异常;或在两个相邻心跳包的时间间隔小于等于预设阈值的情况下,所述游戏平台服务的运行状态为正常。

  可选的,所述心跳包包括游戏平台用户列表;

  所述装置还包括:

  第二获取模块,被配置为获取计时用户列表,并将所述计时用户列表与所述游戏平台用户列表进行比对;

  更新模块,被配置为在所述计时用户列表与所述游戏平台用户列表不同的情况下,根据所述游戏平台用户列表更新所述计时用户列表。

  可选的,所述装置还包括:

  第二发送模块,被配置为在所述游戏平台服务的运行状态为正常且所述游戏时长大于或等于预设阈值的情况下,向所述游戏平台服务发送时长不足通知。

  可选的,所述装置还包括:

  第五接收模块,被配置为接收所述游戏平台服务发送的终止计时指令,其中,所述终止计时指令包括终止时间点。

  第五确定模块,被配置为根据所述终止时间点和所述启动时间点确定游戏时长。

  在本申请实施例提供的游戏计时装置,配置于计时服务,根据游戏平台服务发送的开始计时指令中的启动时间点统计游戏时长,并监控所述游戏平台服务的运行状态,当游戏平台服务的运行状态为异常的情况下,记录异常时间点,并根据异常时间点和启动时间点确定本次游戏时长,在预先购买的游戏时长中扣除对应的游戏时长,避免了因网络波动导致的游戏平台服务宕机进而出现的计时不一致的问题,维护了用户的利益,保证了游戏计时的一致性。

  其次,当用户预先购买的游戏时长不足的情况下,生成时长不足通知并发送至游戏平台服务,维护了游戏运营商的利益,保证了游戏计时的一致性。

  最后,根据游戏平台用户列表更新计时用户列表,为正在玩游戏而没有计时的用户开始计时,为没有玩游戏却依然在计时的用户停止计时。即维护了用户的利益,又维护了游戏运营商的利益,保证了游戏计时的一致性。

  本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的游戏计时方法的步骤。

  本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述游戏计时方法的步骤。

  上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的游戏计时方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述游戏计时方法的技术方案的描述。

  上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

  所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

  需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

  在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

  以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

《一种游戏计时方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)