一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

游戏玩家匹配方法、装置、计算机设备与流程

2021-08-27 13:34:00 来源:中国专利 TAG:
本发明涉及网络游戏
技术领域
:,尤其涉及一种游戏玩家匹配方法、装置、计算机设备。
背景技术
::随着互联网技术的发展,互联网普及率不断上升,为游戏行业的稳定发展和游戏玩家开启游戏提供了基础。我国网络游戏产业随着互联网普及率的上升,呈现快速稳定的良好发展态势,在游戏品种、数量、题材类型等方面,都实现了持续快速的增长。现有的网络游戏,多为多人模式进行游戏,匹配方式通常是基于长连接实现的,如基于websocket协议实现。然而,通过长连接的方式来实现游戏匹配,需要客户端与服务端一直保持连接链路的连接,从而导致需要占用较多的网络资源。技术实现要素:有鉴于此,现提供一种游戏玩家匹配方法、装置、计算机设备,以解决现有的游戏玩家匹配方式需要占用较多网络资源的问题。本发明提供了一种游戏玩家匹配方法,包括:接收游戏玩家发起的游戏匹配请求,所述游戏匹配请求中携带有所述游戏玩家的第一用户标识;根据所述第一用户标识生成所述游戏玩家对应的匹配标识,并为所述游戏玩家分配第一缓存,其中,所述第一缓存中包括所述第一用户标识、所述匹配标识、确认标识以及游戏标识;接收所述游戏玩家通过客户端基于http协议的短连接方式发送的匹配结果查询请求,所述匹配结果查询请求包含所述游戏玩家的匹配标识;根据所述匹配标识查询所述游戏玩家对应的第一缓存,以确定所述游戏玩家是否匹配成功;在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果。可选地,所述游戏玩家匹配方法还包括:将所述第一用户标识保存至第二缓存中;查找所述第二缓存,并在所述第二缓存中存在预设数量的用户标识时,为所述预设数量的用户标识对应的游戏玩家创建游戏标识;将所述游戏标识添加至对应的游戏玩家的缓存中,以更新各个所述游戏玩家的缓存中包含的游戏标识。可选地,所述在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配方法还包括:将所述预设数量的用户标识从所述第二缓存中移除,并将所述预设数量的用户标识进行序列化后添加至匹配队列中;从所述匹配队列中获取经序列化后用户标识,并进行解析以得到所述预设数量的用户标识。可选地,所述在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配方法还包括:创建游戏缓存,其中,所述游戏缓存包括所述预设数量的用户标识以及确认匹配结果的人数信息。可选地,所述在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果的步骤之后,还包括:在预设时间内接收到所述游戏玩家的确认信息时,更新所述人数信息;在所述人数信息为预设数值时,控制游戏开始。可选地,所述在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果的步骤之后,还包括:在预设时间内接收到所述游戏玩家的确认信息时,更新所述确认标识。可选地,所述游戏玩家匹配方法还包括:在所述游戏匹配确定界面中包含的所有游戏玩家对应的确认标识为预设值时,控制游戏开始。本发明还提供了一种游戏玩家匹配装置,包括:第一接收模块,用于接收游戏玩家发起的游戏匹配请求,所述游戏匹配请求中携带有所述游戏玩家的第一用户标识;生成模块,用于根据所述第一用户标识生成所述游戏玩家对应的匹配标识,并为所述游戏玩家分配第一缓存,其中,所述第一缓存中包括所述第一用户标识、所述匹配标识、确认标识以及游戏标识;第二接收模块,用于接收所述游戏玩家通过客户端基于http协议的短连接方式发送的匹配结果查询请求,所述匹配结果查询请求包含所述游戏玩家的匹配标识;查询模块,用于根据所述匹配标识查询所述游戏玩家对应的第一缓存,以确定所述游戏玩家是否匹配成功;返回模块,用于在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果。本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。上述技术方案的有益效果:本技术方案中,在接收游戏玩家发起的游戏匹配请求时,会根据游戏匹配请求携带的第一用户标识生成所述游戏玩家对应的匹配标识,以便游戏玩家可以通过客户端,并基于http协议的短连接方式发送包含该匹配标识的匹配结果查询请求,来查询游戏玩家的匹配结果,而无需通过长连接的方式来查询匹配结果,从而可以降低网络资源的占用。同时通过为各个游戏玩家分配缓存存储用户标识、匹配标识、确认标识以及游戏标识等数据,以便可以提高查询这些数据的速度。附图说明图1为本发明所述游戏玩家匹配的系统框架图的一种实施例的框架图;图2为本发明所述的游戏玩家匹配方法的一种实施例的流程图;图3为本发明游戏玩家匹配方法的另一种实施例的流程图;图4为为本发明游戏玩家匹配方法的另一种实施例的流程图;图5为本发明所述的游戏玩家匹配装置的一种实施例的程序模块图;图6为本发明实施例提供的执行游戏玩家匹配方法的计算机设备的硬件结构示意图。具体实施方式以下结合附图与具体实施例进一步阐述本发明的优点。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。请参考图1,图1是示出了根据本申请实施例的游戏玩家匹配方法的应用环境示意图。在示例性的实施例中,游戏玩家可以藉由移动终端2上安装的客户端app或者网页客户端通过网络6向计算机设备4发送游戏匹配请求,计算机设备4根据该游戏匹配请求为所述移动终端2分配匹配的游戏玩家。所述移动终端2可以是移动电话、平板个人计算机(tabletpersonalcomputer)、膝上型计算机(laptopcomputer)等具有数据发送功能的电子设备。所述网络6可以是因特网,所述计算机设备4可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。图2示意性示出了根据本申请实施例一的游戏玩家匹配方法的流程图。该方法应用于计算机设备中,该计算机设备以服务器为例进行说明。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以服务器为执行主体进行示例性描述。如图2所示,该游戏玩家匹配方法包括步骤s20~s24,其中:步骤s20、接收游戏玩家发起的游戏匹配请求,所述游戏匹配请求中携带有所述游戏玩家的第一用户标识;具体地,游戏玩家在移动终端中选择游戏匹配时,移动终端会向服务器发送游戏匹配请求,其中,该游戏匹配请求中携带有游戏玩家的第一用户标识信息,该第一用户标识信息为能唯一识别游戏玩家身份的信息,例如设备id,用户账号等。游戏玩家在移动终端中选择游戏匹配的方式有很多,比如,在移动终端的界面中通过触屏、手势、按键或者摇晃移动终端等触发选择游戏匹配。优选的,游戏玩家通过触摸游戏匹配控件的方式触发游戏匹配请求。步骤s21,根据所述第一用户标识生成所述游戏玩家对应的匹配标识,并为所述游戏玩家分配第一缓存,其中,所述第一缓存中包括所述第一用户标识、所述匹配标识、确认标识以及游戏标识。具体地,服务器在接收到游戏玩家发起的游戏匹配请求时,会根据该游戏玩家的用户标识生成对应的匹配标识,即matchid,其中,该匹配标识可以随机生成,也可以按照预设的规则生成。该匹配标识为用于游戏玩家查询匹配结果的信息,即游戏玩家可以通过该匹配标识来查询该游戏玩家所分配的缓存。需要说明的是,所有的游戏玩家发起匹配请求时,服务器都会其生成对应的匹配标识,以及为其分配对应的第一缓存。比如,当服务器接收到游戏玩家a发送的游戏匹配请求时,服务器会根据该游戏玩家a的用户标识uid-1生成匹配标识matchid-1,并会为该游戏玩家分配第一缓存user-1,其中,该第一缓存user-1为redis缓存,即该第一缓存通过key-value的方式存储数据。该第一缓存在存储数据时,key是user:{uid},value的结构为{uid:uid,match_id:0,is_ready:0,game_id:0},其中,uid为用户id,即用户标识字段,“uid”为用户标识;match_id为生成的匹配id,即匹配标识字段,“0”为匹配标识;is_ready表示是否确认,即确认标识字段,“0”确认标识;game_id表示游戏id,即游戏标识字段,“0”为游戏标识。在本发明实施方式中,服务器在接收到其他游戏玩家发送的游戏匹配请求时,也会按照上述方法生成其对应的匹配标识,以及为其分配缓存存储上述所述的信息。进一步地,参照图3,在一实施方式中,所述游戏玩家匹配方法还包括:步骤s30,将所述第一用户标识保存至第二缓存中;具体地,服务器在获取到第一用户标识之后,还会将该第一用户标识保存至第二缓存中,其中,该第二缓存也为redis缓存,该第二缓存的数据类型为set(集合)。需要说明的是,在本发明实施例中,服务器在获取到其他发起游戏匹配请求的游戏玩家的用户标识时,也会将该用户标识保存至该第二缓存中,即该第二缓存用于存储将发起游戏匹配请求的所有游戏玩家的用户标识。步骤s31,查找所述第二缓存,并在所述第二缓存中存在预设数量的用户标识时,为所述预设数量的用户标识对应的游戏玩家创建游戏标识。具体地,服务器会异步的通过脚本x查找该第二缓存prepare_list,直到该第二缓存中存在预设个有效的游戏玩家的用户标识,即服务器会通过一个线程实时或者定时查找第二缓存中存储的用户标识,并在发现该第二缓存中存储有预设数量的用户标识时,为该预设数量的用户标识对应的游戏玩家创建游戏标识gameid,其中,该游戏标识为唯一区分不同场游戏的信息。在本实施例中,该预设数量可以预先设定,比如设定为5,若所述预设数量为5,则表明该场游戏为5人匹配的游戏。在发明另一实施方式中,当服务器查找所述第二缓存,并发现该第二缓存中存在的用户标识数量大于所述预设数量时,则服务器可以从该第二缓存中随机或者按照预设的规则选出预设数量的用户标识,然后为所述预设数量的用户标识对应的游戏玩家创建游戏标识。步骤s32,将所述游戏标识添加至对应的游戏玩家的缓存中,以更新各个所述游戏玩家的缓存中包含的游戏标识。具体地,服务器在创建好游戏标识之后,会将该游戏标识添加至对应游戏玩家的缓存中,以便使用该添加的游戏标识更新各个游戏玩家缓存中包含的默认游戏标识。比如,当所述预设数量的用户标识分别为uid-1和uid-2,则在创建好游戏标识gameid之后,会将该游戏标识gameid分别添加至uid-1和uid-2对应的缓存中。本实施例根据创建好的游戏标识来更新对应的游戏玩家中缓存中包含的游戏标识,从而使得服务器在接收到游戏玩家的匹配结果查询请求时,可以根据该游戏标识来快速判定出该游戏玩家是否匹配成功。进一步地,参照图4,在一实施方式中,在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配方法还包括:步骤s40,将所述预设数量的用户标识从所述第二缓存中移除,并将所述预设数量的用户标识进行序列化后添加至匹配队列中。具体地,服务器在从第二缓存中选取预设数量的用户标识之后,会将该选取到的用户标识从该第二缓存中移除,即该选取到的用户标识删除。同时会将该选取到的用户标识进行序列化,以生成特定结构的用户标识,最后将序列化后的用户标识添加到匹配队列中,其中,该匹配队列用于存储符合匹配条件的用户标识,即该匹配队列中可以存储多组符合匹配条件的用户标识。该序列化后得到的信息包括预设数量的用户标识。步骤s41,从所述匹配队列中获取经序列化后用户标识,并进行解析以得到所述预设数量的用户标识。具体地,服务器可以异步的通过脚本y消费匹配队列,每次消费到的一条数据就是获取到一组经序列化后用户标识,在获取到一组经序列化后用户标识之后,对其进行解析以得到预设数量的用户标识,比如,解析得到用户标识uid-1和uid-2。本实施例通过将预设数量的用户标识从所述第二缓存中移除,然后将其添加至匹配队列中,以便服务器可以通过异步方式从匹配队列中获取到该预设数量的用户标识,从而可以节省获取用户标识的时间,进而提高游戏玩家匹配的效率。进一步地,在一实施方式中,在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配方法还包括:创建游戏缓存,其中,所述游戏缓存包括所述预设数量的用户标识以及确认匹配结果的人数信息。具体地,服务器会为每场游戏创建一个游戏缓存,该游戏缓存的格式优选为string格式,key为game:{gameid},结构为{ready_num:0,users:uid-1,uid-2},其中,ready_num表示确认匹配结果的人数信息,“0”为初始默认确认匹配结果的人数为0个;users表示参与这场游戏的用户标识信息,即用户id字段,“uid-1,uid-2”为参与这场游戏的游戏玩家有uid-1,uid-2。在本实施例中,为了节省存储资源,可以设置该缓存过期的时间,不如设置为30min。本发明实施例中,通过为每场游戏创建一个游戏缓存,从而可以方便地通过查询该游戏缓存来查询确认匹配结果的人数,以及可以方便通过查询该游戏缓存来确定本场游戏是否已经失效或者结束。步骤s22,接收所述游戏玩家通过客户端基于http协议的短连接方式发送的匹配结果查询请求,所述匹配结果查询请求包含所述游戏玩家的匹配标识。具体地,游戏玩家通过客户端基于http协议的短连接方式向服务器轮询匹配结果查询请求,该查询请求中包含有该游戏玩家的匹配标识,以便服务器可以根据该匹配标识查找到该游戏玩家的第一缓存。其中,短连接指的是客户端向服务器端发起连接请求,服务器端接到请求,然后双方建立连接。之后,客户端向服务器端发送消息,服务器端回应客户端,然后一次请求就完成了。这时候双方任意都可以发起close(关闭)操作,不过一般都是客户端先发起close(关闭)操作。即短连接在完成一次请求之后,就会关闭连接链路,而不像长连接一样在完成一次请求之后,依然保持连接链路的连接。步骤s23,根据所述匹配标识查询所述游戏玩家对应的第一缓存,以确定所述游戏玩家是否匹配成功。具体地,服务器在获取到匹配标识之后,即可以通过该匹配标识来查询该游戏玩家对应的第一缓存,在查找到该第一缓存时,由于该第一缓存中存储有游戏标识,因此,在查找到该第一缓存之后,即可以根据该第一缓存中存储的游戏标识来确定该游戏玩家是否匹配成功。在一实施方式中,当该游戏标识不为预设值时,比如不为“0”时,则可以确定该游戏玩家匹配成功,在该游戏标识为“0”时,则可以确定该游戏玩家未匹配成功。步骤s24,在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果。具体地,服务器在确定该游戏玩家匹配成功时,会推送游戏匹配确定界面给游戏玩家对应的客户端,以供游戏玩家通过客户端确认该匹配结果。其中,该游戏匹配确定界面包括有各个匹配的游戏玩家的用户信息,比如,包括游戏玩家的头像信息、等级信息等。在本实施例中,移动终端在获取到该游戏匹配确认界面后,此时该游戏玩家具有两种选择。(1)该游戏玩家没有在规定时间内确定该匹配结果,则本次匹配结果无效,整个流程结束。(2)该游戏玩家在规定时间内确认了该匹配结果,则等待其他匹配的游戏玩家确认该匹配结果。本实施例中在接收游戏玩家发起的游戏匹配请求时,会根据游戏匹配请求携带的第一用户标识生成所述游戏玩家对应的匹配标识,以便游戏玩家可以根据该匹配标识通过客户端基于http协议的短连接方式发送的匹配结果查询请求来查询游戏玩家的匹配结果,而无需通过长连接的方式来查询匹配结果,从而可以降低网络资源的占用。同时通过为各个游戏玩家分配缓存存储用户标识、匹配标识、确认标识以及游戏标识等数据,以便可以提高查询这些数据的速度。进一步地,在一实施方式中,所述在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果的步骤之后,还包括:在预设时间内接收到所述游戏玩家的确认信息时,更新所述人数信息;在所述人数信息为预设数值时,控制游戏开始。具体地,服务器在预设时间内接收到游戏玩家的确定信息时,会更新游戏缓存中存储的确认匹配结果的人数信息,其中,该预设时间为预先设定的,比如,该预设时间为10秒。在完成人数信息的更新之后,服务器还会进一步判断该人数信息是否为预设数值,该人数信息为预设数值,则表明所有匹配的游戏玩家都确认了匹配结果,则此时服务器可以控制游戏开始。其中,该预设数值也是预先设定的,根据游戏模式的不同,该预设数值可以设定为不同的值,比如,若游戏模式为5人对战游戏,则该预设数值可以设定为5,若游戏模式为2人对战游戏,则该预设数值可以设2。在本实施例中,在服务器控制开始游戏之后,游戏玩家对应的移动终端可以通过游戏标识来查询战斗结果,服务器在接收到战斗结果查询请求时,会返回战斗结果,以便移动终端可以根据该战斗结果展示游戏动画及结算页面等。本发明实施例中通过根据人数信息来判定所有匹配的游戏玩家是否确认了匹配结果,以便服务器可以及时确定是否控制游戏开始。进一步地,在另一实施方式中,所述在所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果的步骤之后,还包括:在预设时间内接收到所述游戏玩家的确认信息时,更新所述确认标识。具体地,服务器在预设时间内接收到游戏玩家的确认信息后,及时更新游戏玩家对应的第一缓存中的确认标识,以便服务器可以通过该确认标识方便且准确地判定游戏玩家是否对匹配结果进行了确认。更进一步地,在一实施方式中,所述游戏玩家匹配方法还包括:在所述游戏匹配确定界面中包含的所有游戏玩家对应的确认标识为预设值时,控制游戏开始。具体地,服务器在判定是否控制开始游戏时,还可以通过查询游戏匹配确定界面中包含的所有游戏玩家对应的确认标识是否为预设值的方式来确定是否控制游戏开始。比如,通过查询所有游戏玩家对应的确认标识,若发现所有游戏玩家对应的确定标识是否都为“1”,则可以控制游戏开始,若发现存在游戏玩家对应的确认标识不为“1”,而为“0”,则不能控制游戏开始。需要说明的是,确定标识为“1”、“0”仅为示例性的。本实施例通过查询游戏匹配确定界面中包含的所有游戏玩家对应的确认标识是否为预设值的方式来判定所有游戏玩家是否确认了匹配结果,以便服务器可以及时确定是否控制游戏开始。图5示意性示出了根据本申请的游戏玩家匹配装置500的程序模块图,该游戏玩家匹配装置500可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。如图5所示,该游戏玩家匹配装置500可以包括位置第一接收模块501、生成模块502、第二接收模块503、查询模块504、返回模块505,其中:第一接收模块501,用于游戏玩家在移动终端中选择游戏匹配时,移动终端会向第一接收模块501发送游戏匹配请求,其中,该游戏匹配请求中携带有游戏玩家的第一用户标识信息,该第一用户标识信息为能唯一识别游戏玩家身份的信息,例如设备id,用户账号等。游戏玩家在移动终端中选择游戏匹配的方式有很多,比如,在移动终端的界面中通过触屏、手势、按键或者摇晃移动终端等触发选择游戏匹配。优选的,游戏玩家通过触摸游戏匹配控件的方式触发游戏匹配请求。生成模块502,用于根据所述第一用户标识生成所述游戏玩家对应的匹配标识,并为所述游戏玩家分配第一缓存,其中,所述第一缓存中包括所述第一用户标识、所述匹配标识、确认标识以及游戏标识。具体地,在接收到游戏玩家发起的游戏匹配请求时,生成模块502会根据该游戏玩家的用户标识生成对应的匹配标识,即matchid,其中,该匹配标识可以随机生成,也可以按照预设的规则生成。该匹配标识为用于游戏玩家查询匹配结果的信息,即游戏玩家可以通过该匹配标识来查询该游戏玩家所分配的缓存。需要说明的是,所有的游戏玩家发起匹配请求时,生成模块502都会其生成对应的匹配标识,以及为其分配对应的第一缓存。比如,当接收到游戏玩家a发送的游戏匹配请求时,生成模块502会根据该游戏玩家a的用户标识uid-1生成匹配标识matchid-1,并会为该游戏玩家分配第一缓存user-1,其中,该第一缓存user-1为redis缓存,即该第一缓存通过key-value的方式存储数据。该第一缓存在存储数据时,key是user:{uid},value的结构为{uid:uid,match_id:0,is_ready:0,game_id:0},其中,uid为用户id,即用户标识字段,“uid”为用户标识;match_id为生成的匹配id,即匹配标识字段,“0”为匹配标识;is_ready表示是否确认,即确认标识字段,“0”确认标识;game_id表示游戏id,即游戏标识字段,“0”为游戏标识。在本发明实施方式中,在接收到其他游戏玩家发送的游戏匹配请求时,也会按照上述方法生成其对应的匹配标识,以及为其分配缓存存储上述所述的信息。进一步地,在一实施方式中,所述游戏玩家匹配装置500还包括:保存模块、查找模块、添加模块。保存模块,用于将所述第一用户标识保存至第二缓存中;具体地,在获取到第一用户标识之后,保存模块还会将该第一用户标识保存至第二缓存中,其中,该第二缓存也为redis缓存,该第二缓存的数据类型为set(集合)。需要说明的是,在本发明实施例中,在获取到其他发起游戏匹配请求的游戏玩家的用户标识时,保存模块也会将该用户标识保存至该第二缓存中,即该第二缓存用于存储将发起游戏匹配请求的所有游戏玩家的用户标识。查找模块,用于查找所述第二缓存,并在所述第二缓存中存在预设数量的用户标识时,为所述预设数量的用户标识对应的游戏玩家创建游戏标识。具体地,查找模块会异步的通过脚本x查找该第二缓存prepare_list,直到该第二缓存中存在预设个有效的游戏玩家的用户标识,即查找模块会通过一个线程实时或者定时查找第二缓存中存储的用户标识,并在发现该第二缓存中存储有预设数量的用户标识时,为该预设数量的用户标识对应的游戏玩家创建游戏标识gameid,其中,该游戏标识为唯一区分不同场游戏的信息。在本实施例中,该预设数量可以预先设定,比如设定为5,若所述预设数量为5,则表明该场游戏为5人匹配的游戏。在发明另一实施方式中,当查找模块查找所述第二缓存,并发现该第二缓存中存在的用户标识数量大于所述预设数量时,则查找模块可以从该第二缓存中随机或者按照预设的规则选出预设数量的用户标识,然后为所述预设数量的用户标识对应的游戏玩家创建游戏标识。添加模块,用于将所述游戏标识添加至对应的游戏玩家的缓存中,以更新各个所述游戏玩家的缓存中包含的游戏标识。具体地,在创建好游戏标识之后,添加模块会将该游戏标识添加至对应游戏玩家的缓存中,以便使用该添加的游戏标识更新各个游戏玩家缓存中包含的默认游戏标识。比如,当所述预设数量的用户标识分别为uid-1和uid-2,则在创建好游戏标识gameid之后,会将该游戏标识gameid分别添加至uid-1和uid-2对应的缓存中。本实施例根据创建好的游戏标识来更新对应的游戏玩家中缓存中包含的游戏标识,从而使得服务器在接收到游戏玩家的匹配结果查询请求时,可以根据该游戏标识来快速判定出该游戏玩家是否匹配成功。进一步地,在一实施方式中,在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配装置500还包括:移除模块、解析模块。移除模块,用于将所述预设数量的用户标识从所述第二缓存中移除,并将所述预设数量的用户标识进行序列化后添加至匹配队列中。具体地,在从第二缓存中选取预设数量的用户标识之后,移除模块会将该选取到的用户标识从该第二缓存中移除,即该选取到的用户标识删除。同时会将该选取到的用户标识进行序列化,以生成特定结构的用户标识,最后将序列化后的用户标识添加到匹配队列中,其中,该匹配队列用于存储符合匹配条件的用户标识,即该匹配队列中可以存储多组符合匹配条件的用户标识。该序列化后得到的信息包括预设数量的用户标识。解析模块,用于从所述匹配队列中获取经序列化后用户标识,并进行解析以得到所述预设数量的用户标识。具体地,解析模块可以异步的通过脚本y消费匹配队列,每次消费到的一条数据就是获取到一组经序列化后用户标识,在获取到一组经序列化后用户标识之后,对其进行解析以得到预设数量的用户标识,比如,解析得到用户标识uid-1和uid-2。本实施例通过将预设数量的用户标识从所述第二缓存中移除,然后将其添加至匹配队列中,以便服务器可以通过异步方式从匹配队列中获取到该预设数量的用户标识,从而可以节省获取用户标识的时间,进而提高游戏玩家匹配的效率。进一步地,在一实施方式中,在所述第二缓存中存在预设数量的用户标识时,所述游戏玩家匹配装置500还包括创建模块。创建模块,用于创建游戏缓存,其中,所述游戏缓存包括所述预设数量的用户标识以及确认匹配结果的人数信息。具体地,创建模块会为每场游戏创建一个游戏缓存,该游戏缓存的格式优选为string格式,key为game:{gameid},结构为{ready_num:0,users:uid-1,uid-2},其中,ready_num表示确认匹配结果的人数信息,“0”为初始默认确认匹配结果的人数为0个;users表示参与这场游戏的用户标识信息,即用户id字段,“uid-1,uid-2”为参与这场游戏的游戏玩家有uid-1,uid-2。在本实施例中,为了节省存储资源,可以设置该缓存过期的时间,不如设置为30min。本发明实施例中,通过为每场游戏创建一个游戏缓存,从而可以方便地通过查询该游戏缓存来查询确认匹配结果的人数,以及可以方便通过查询该游戏缓存来确定本场游戏是否已经失效或者结束。第二接收模块503,用于接收所述游戏玩家通过客户端基于http协议的短连接方式发送的匹配结果查询请求,所述匹配结果查询请求包含所述游戏玩家的匹配标识。具体地,游戏玩家通过客户端基于http协议的短连接方式向服务器轮询匹配结果查询请求,该查询请求中包含有该游戏玩家的匹配标识,以便服务器可以根据该匹配标识查找到该游戏玩家的第一缓存。其中,短连接指的是客户端向服务器端发起连接请求,服务器端接到请求,然后双方建立连接。之后,客户端向服务器端发送消息,服务器端回应客户端,然后一次请求就完成了。这时候双方任意都可以发起close(关闭)操作,不过一般都是客户端先发起close(关闭)操作。即短连接在完成一次请求之后,就会关闭连接链路,而不像长连接一样在完成一次请求之后,依然保持连接链路的连接。查询模块504,用于根据所述匹配标识查询所述游戏玩家对应的第一缓存,以确定所述游戏玩家是否匹配成功。具体地,在获取到匹配标识之后,查询模块504即可以通过该匹配标识来查询该游戏玩家对应的第一缓存,在查找到该第一缓存时,由于该第一缓存中存储有游戏标识,因此,在查找到该第一缓存之后,即可以根据该第一缓存中存储的游戏标识来确定该游戏玩家是否匹配成功。在一实施方式中,当该游戏标识不为预设值时,比如不为“0”时,则可以确定该游戏玩家匹配成功,在该游戏标识为“0”时,则可以确定该游戏玩家未匹配成功。返回模块505,用于所述游戏玩家匹配成功时,返回游戏匹配确定界面以供所述游戏玩家确认所述匹配结果。具体地,在确定该游戏玩家匹配成功时,返回模块505会推送游戏匹配确定界面给游戏玩家对应的客户端,以供游戏玩家通过客户端确认该匹配结果。其中,该游戏匹配确定界面包括有各个匹配的游戏玩家的用户信息,比如,包括游戏玩家的头像信息、等级信息等。在本实施例中,移动终端在获取到该游戏匹配确认界面后,此时该游戏玩家具有两种选择。(1)该游戏玩家没有在规定时间内确定该匹配结果,则本次匹配结果无效,整个流程结束。(2)该游戏玩家在规定时间内确认了该匹配结果,则等待其他匹配的游戏玩家确认该匹配结果。本实施例中在接收游戏玩家发起的游戏匹配请求时,会根据游戏匹配请求携带的第一用户标识生成所述游戏玩家对应的匹配标识,以便游戏玩家可以根据该匹配标识通过客户端基于http协议的短连接方式发送的匹配结果查询请求来查询游戏玩家的匹配结果,而无需通过长连接的方式来查询匹配结果,从而可以降低网络资源的占用。同时通过为各个游戏玩家分配缓存存储用户标识、匹配标识、确认标识以及游戏标识等数据,以便可以提高查询这些数据的速度。进一步地,在一实施方式中,所述游戏玩家匹配装置500还包括更新模块。所述更新模块,用于在预设时间内接收到所述游戏玩家的确认信息时,更新所述人数信息;以及用于在所述人数信息为预设数值时,控制游戏开始。具体地,在预设时间内接收到游戏玩家的确定信息时,更新模块会更新游戏缓存中存储的确认匹配结果的人数信息,其中,该预设时间为预先设定的,比如,该预设时间为10秒。在完成人数信息的更新之后,更新模块还会进一步判断该人数信息是否为预设数值,该人数信息为预设数值,则表明所有匹配的游戏玩家都确认了匹配结果,则此时更新模块可以控制游戏开始。其中,该预设数值也是预先设定的,根据游戏模式的不同,该预设数值可以设定为不同的值,比如,若游戏模式为5人对战游戏,则该预设数值可以设定为5,若游戏模式为2人对战游戏,则该预设数值可以设2。在本实施例中,在服务器控制开始游戏之后,游戏玩家对应的移动终端可以通过游戏标识来查询战斗结果,服务器在接收到战斗结果查询请求时,会返回战斗结果,以便移动终端可以根据该战斗结果展示游戏动画及结算页面等。本发明实施例中通过根据人数信息来判定所有匹配的游戏玩家是否确认了匹配结果,以便服务器可以及时确定是否控制游戏开始。进一步地,在另一实施方式中,所述更新模块,还用于在预设时间内接收到所述游戏玩家的确认信息时,更新所述确认标识。具体地,更新模块在预设时间内接收到游戏玩家的确认信息后,会及时更新游戏玩家对应的第一缓存中的确认标识,以便可以通过该确认标识方便且准确地判定游戏玩家是否对匹配结果进行了确认。更进一步地,在一实施方式中,所述更新模块,还用于在所述游戏匹配确定界面中包含的所有游戏玩家对应的确认标识为预设值时,控制游戏开始。具体地,在判定是否控制开始游戏时,更新模块还可以通过查询游戏匹配确定界面中包含的所有游戏玩家对应的确认标识是否为预设值的方式来确定是否控制游戏开始。比如,通过查询所有游戏玩家对应的确认标识,若发现所有游戏玩家对应的确定标识是否都为“1”,则可以控制游戏开始,若发现存在游戏玩家对应的确认标识不为“1”,而为“0”,则不能控制游戏开始。需要说明的是,确定标识为“1”、“0”仅为示例性的。本实施例通过查询游戏匹配确定界面中包含的所有游戏玩家对应的确认标识是否为预设值的方式来判定所有游戏玩家是否确认了匹配结果,以便服务器可以及时确定是否控制游戏开始。图6示意性示出了本申请实施例适于实现游戏玩家匹配方法的计算机设备的硬件架构示意图。本实施例中,计算机设备4是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,计算机设备4至少包括但不限于:可通过系统总线相互通信链接存储器610、处理器620、网络接口630。其中:存储器610至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器610可以是计算机设备4的内部存储模块,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器610也可以是计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smartmediacard,简称为smc),安全数字(securedigital,简称为sd)卡,闪存卡(flashcard)等。当然,存储器610还可以既包括计算机设备4的内部存储模块也包括其外部存储设备。本实施例中,存储器610通常用于存储安装于计算机设备4的操作系统和各类应用软件,例如游戏玩家匹配方法的程序代码等。此外,存储器610还可以用于暂时地存储已经输出或者将要输出的各类数据。处理器620在一些实施例中可以是中央处理器(centralprocessingunit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器620通常用于控制计算机设备4的总体操作,例如执行与计算机设备4进行数据交互或者通信相关的控制和处理等。本实施例中,处理器620用于运行存储器610中存储的程序代码或者处理数据。网络接口630可包括无线网络接口或有线网络接口,该网络接口630通常用于在计算机设备4与其他计算机设备之间建立通信链接。例如,网络接口630用于通过网络将计算机设备4与外部终端相连,在计算机设备4与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,简称为gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。需要指出的是,图6仅示出了具有部件610~630的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。在本实施例中,存储于存储器610中的游戏玩家匹配方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器620)所执行,以完成本发明。本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的游戏玩家匹配方法的步骤。本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,简称为smc),安全数字(securedigital,简称为sd)卡,闪存卡(flashcard)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的游戏玩家匹配方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜