一种在网络游戏中用户登录的方法及系统的制作方法

文档序号:7962420阅读:742来源:国知局
专利名称:一种在网络游戏中用户登录的方法及系统的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种在网络游戏中用户登录的方法及系统。
背景技术
在人类社会高度文明发展的今天,随着人们物质生活水平的提高,人们对精神生活的需求也越来越高。网络游戏作为满足人们精神生活需求产业,这一产业是20世纪末期伴随互联网发展而出现的新兴娱乐产业,它在一定程度上变革了传统娱乐方式和电脑产业,并逐步成为全球娱乐业主流。
随着网络游戏的多样化发展,越来越多的游戏爱好者加入网络游戏,网络游戏用户通过服务器登录到游戏中,享受游戏带来的娱乐。
现有技术中,用户登录网络游戏的流程为用户在游戏客户端输入用户名、密码,向游戏服务器发送登录请求,游戏客户端将用户名、密码发送到游戏服务器;游戏服务器向登录服务器发送登录请求,即将用户名、密码发送到登录服务器;登录服务器根据用户名在数据库中检索该用户信息,若检索到,登录服务器对检索得到的用户信息进行认证,认证通过,反馈给游戏服务器认证通过信息,游戏服务器再将认证信息反馈给客户端,用户可进入游戏;若检索不到该用户信息或对用户信息认证未通过,则返回提示信息给游戏服务器,游戏服务器对反馈回的提示信息进行处理;例如若用户的余额不足,则游戏服务器将此信息反馈给用户客户端,告知用户进行充值。
现有技术的缺点是1、由于现有登录技术中用户登录请求被登录服务器接受后,登录服务器直接到数据库中检索用户信息,并返回结果,因此随着用户数量的激增,数据库容量的增大,会导致检索速度越来越慢,影响用户的登录。
2、当同一时间大量用户登录请求涌入的时候,会造成登录服务器负载过大,用户响应时间加长,导致用户登录失败概率增大,难于登录;3、由于网络原因,用户在登录游戏后,经常会发生掉线的情况,这就需要用户重新进行登录,反复向登录服务器进行请求,增大登录服务器的负载;发明内容本发明的目的是提供一种在网络游戏中用户登录的方法,使用户能够快速的登录到网络游戏;本发明的另一目的是提供网络游戏中用户登录的系统。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的。
一种在网络游戏中用户登录的方法,包括步骤a发送登录请求信息;b根据请求信息在预置的缓存模块中检索用户信息,若检索到,进入步骤d;否则,进入步骤c;c登录服务器在数据库中检索用户信息,若检索到,进入步骤d;否则,反馈错误信息给游戏服务器;d对检索到的用户信息进行认证,若认证通过,则反馈认证通过信息,用户登录进入游戏;否则,反馈错误信息给游戏服务器。
其中,所述预置的缓存模块中所保存的用户的信息包括用户时间戳信息,依据时间戳信息将用户信息保存到缓存模块中活动队列或不活动队列或删除队列;所述步骤b中检索用户信息包括步骤b1在活动队列中检索,如果检索到,则进入步骤d;b2在不活动队列中检索,如果检索到,则进入步骤d;b3在删除队列中检索,如果检索到,则进入步骤d,如果没有检索到,则返回没有检索到用户信息结果。
其中,若在缓存模块中检索到用户信息,则在步骤d之后进一步包括修改缓存模块中用户信息的时间戳信息,并将用户信息放置活动队列中。
其中,若在登录服务器中检索到用户信息,则在步骤d之后进一步包括将用户信息保存到缓存模块中,同时在缓存模块中为用户设置一个时间戳信息。
其中,在缓存模块中使用B树结构保存用户信息。
其中,步骤a与步骤b之间进一步包括游戏客户端将登录请求信息发送到游戏服务器,游戏服务器再将用户登录请求信息发送到缓存模块。
其中,所述缓存模块为独立于登录服务器的缓存服务器或隶属于登录服务器。
其中,进一步由所述缓存服务器构成服务器集群。
一种在网络游戏中用户登录的系统,该系统包括用户客户端、游戏服务器、缓存模块、登录服务器;用户客户端,用于在用户登录时将用户名、密码发送到游戏服务器;游戏服务器,用于将用户请求信息发送到缓存模块;缓存模块,用于保存用户信息,在用户登录时,检索缓存模块中是否有用户信息,如果没有,则将用户请求信息转发给登录服务器;如果有,则对用户信息进行检索认证。
登录服务器,用于在缓存模块中未检索到用户信息时,有登录服务器再到数据库中检索用户信息,对检索到的用户信息,则对用户信息进行检索认证同时将用户信息返回给缓存模块,由缓存模块保存用户信息;如果没有,则返回错误信息给游戏服务器。
其中,所述缓存模块进一步包括信息缓存模块、缓存决策模块、网络传输模块、用户请求模块、内存管理模块;信息缓存模块分为活动队列、不活动队列、删除队列,用于保存用户信息;缓存决策模块,用于定时管理信息缓存模块中的用户信息,依据用户信息中时间戳信息将用户信息保存到相应队列中;网络传输模块,用于将数据传输到在各服务器;用户请求模块,用于在信息缓存模块中未检索到用户信息时将用户登录的请求发送到登录服务器;内存管理模块,用于对缓存模块的内存进行管理。负责内存回收,分配,防止频繁分配内存造成内存碎片,并加快分配速度。
其中,所述缓存模块为独立于登录服务器的缓存服务器或隶属于登录服务器。
其中,进一步由所述缓存服务器构成服务器集群。
以上技术方案可以看出,本发明具有如下有益效果首先,在本发明中,增加一个缓存模块,根据用户登录的时间戳信息,将用户信息分别保存在活动队列或非活动队列或删除队列中。在检索用户信息时,缩小了检索范围,从而提高了检索速度,加快用户登录,减小用户登录失败的概率。
进一步,缓存模块保存用户信息,采用B树结构进行保存,提高检索速度。
进一步,缓存决策模块对缓存模块中保存的用户信息,进行定时管理,保证缓存模块三级队列中的用户信息最优化。
另外,本发明在网络断线的情况下,不需要用户反复向登录服务器进行登录,进而减轻登录服务器的负载。


图1为本发明用户登录流程图;图2为本发明中B树结构图;图3为本发明系统结构图。
具体实施例方式
本发明的核心在于在现有的登录系统模式下,增加一个缓存模块,该模块可以隶属于登录服务器,也可独立于登录服务器另外设置服务器,按用户登录的频率,将经常登录的用户信息保存于缓存模块当中,在用户登录时,首先检索缓存中的信息,若未找到,再到数据库中进行检索;由于缓存中只保存了部分用户的用户信息,并且对缓存的检索速度远远高于对数据库的检索速度,从而加快用户登录的响应速度。
本发明实施例中,缓存模块是独立于登录服务器另外设置的缓存服务器。
为便于对本发明进一步理解,现结合附图对本发明进行详细描述。
请参阅图1所示为本发明用户登录流程图,具体包括步骤101用户在游戏客户端输入用户名、密码,向游戏服务器发送登录请求,游戏客户端将用户名、密码发送到游戏服务器;步骤102游戏服务器收到用户请求消息后再将用户请求消息发送到缓存服务器;其中,缓存服务器系统结构包括信息缓存模块、缓存决策模块、网络传输模块、用户请求模块、内存管理模块。
其中,信息缓存模块分为3级队列即活动队列,不活动队列,删除队列,将刚被保存到信息缓存模块的用户信息的时候进入活动队列,如果超出一定时间该用户没有再次登陆,进入不活动队列,如果在进入不活动队列一段时间后,依然没有登陆,那么缓存决策模块会将该信息丢入删除队列,由内存管理模块负责回收内存等资源。
步骤103缓存服务器在信息缓存模块中检索该用户信息;其中检索用户信息包括,首先会活动队列中进行检索,若检索到,进行用户信息的认证,并修改当前用户信息的时间戳为当前时间,如果没有检索到,则到不活动队列中进行检索;在不活动队列中若检索到用户信息,进行用户信息的认证,将用户信息转移到活动队列中,修改当前用户信息的时间戳为当前时间,如果没有检索到,则到删除队列中进行检索;在删除队列中若检索到用户信息,进行用户信息的认证,将用户信息转移到活动队列中,修改当前用户信息的时间戳为当前时间,如果没有检索到,则发送用户登录请求到用户请求模块。
所述缓存服务器在信息缓存模块中检索用户信息并不局限于上述检索流程,也可以由其它检索流程来实现。
步骤104缓存服务器判断是否检索到该用户信息,如果是,则进入步骤105;否则,进入步骤108;步骤105对检索到的用户信息进行认证;其中,认证的过程包括判断该用户密码是否正确,余额是否充足,是否被锁定,是否是非法IP等的判断。
步骤106判断用户信息认证是否通过,如果是,则进入步骤107;否则,反馈提示信息给游戏服务器,游戏服务器对反馈回的提示信息进行处理,例如若用户的余额不足,则游戏服务器将此信息反馈给用户客户端,告知用户进行充值,结束;步骤107用户信息认证通过,反馈给游戏服务器认证通过信息,游戏服务器再将通过认证信息反馈给客户端,用户可进行游戏,同时修改缓存服务器中该用户信息的时间戳信息,并按预置策略,将用户信息放置相应的队列中,结束;步骤108对未检索到的用户信息,将用户的登录请求放入用户请求模块,用户请求模块再向登录服务器转发登录请求;步骤109登录服务器接收到缓存服务器发送的用户请求后,在数据库中检索用户信息,若检索到,则进行步骤110;否则,返回提示信息给游戏服务器,游戏服务器对反馈回的提示信息进行处理,例如用户密码错误,请重新输入或则用户余额不足,请充值;
其中,数据库中保存的用户信息如下表所示表1

步骤110对检索到的用户信息进行认证;其中,认证的过程包括判断该用户密码是否正确,余额是否充足,是否被锁定,是否是非法IP等的判断。
步骤111判断用户信息认证是否通过,如果是,则进入步骤112;否则,反馈提示信息给游戏服务器,游戏服务器对反馈回的提示信息进行处理,例如若用户的余额不足,则游戏服务器将此信息反馈给用户客户端,告知用户进行充值,结束;步骤112用户信息认证通过,反馈给游戏服务器认证通过信息,游戏服务器再将通过认证信息反馈给客户端,用户可进行游戏,并将用户信息返回给缓存服务器,缓存服务器中的缓存决策模块将用户信息保存在信息缓存模块中,同时为用户设置一个时间戳,本实施例中,时间戳的信息为用户登录的时间信息。
其中,信息缓存模块使用B树结构,保存用户信息,用于加快内存检索速度,例如按用户名的字母顺序建立的B树结构,参见图2所示,第一层节点包括a到z,第二层节点中的每个节点又包括a到z,依次类推,每个节点存储一个指针,指向用户信息的保存地址。例如有个用户名为abc,那么就在B树结构中,先建立a节点,在a节点下建立b节点,在b节点下,建立c节点,c节点中设置一个指针,指向用户信息的存储地址。
其中,缓存决策模块还要和登录服务器维持一条长连接,以进行缓存无效化操作。即当用户从修改用户密码的时候,若该用户的信息保存在信息缓存模块中,则登录服务器会通知缓存服务器,由缓存决策模块直接将该缓存信息丢入删除队列,并将用户新的信息从登录服务器取出,保存在信息缓存模块中或者也可以直接将缓存模块中的用户信息进行修改。
进一步,为了提高用户登录速度,也可采取缓存服务器的集群策略,具体如下可由多台相同功能的缓存服务器组成服务器集群,比如10台缓存服务器组成集群,每个缓存服务器都有唯一的IP地址,在实际应用时,将登录请求发送到集群,由域名服务器(DNS)随机选择一个IP,将登录请求发送到相应IP的缓存服务器中,这样可以达到较好的负载均衡,并且如果其中一台缓存服务器崩溃,登录将不受影响。
相应的,本发明还提供了一种在网络游戏中用户登录的系统,请参阅图3所示系统包括用户客户端301、游戏服务器302、缓存模块303、登录服务器304;用户客户端301,用于在用户登录时将用户名、密码发送到游戏服务器302;游戏服务器302,用于将用户请求信息发送到缓存模块303;缓存模块303,用于保存用户信息,在用户登录时,检索缓存模块303中是否有用户信息,如果没有,则将用户请求信息转发给登录服务器304;如果有,则对用户信息进行检索认证。
登录服务器304,用于在缓存模块303中未检索到用户信息时,有登录服务器304再到数据库中检索用户信息,对检索到的用户信息,则对用户信息进行检索认证同时将用户信息返回给缓存模块303,由缓存模块303保存用户信息;如果没有,则返回错误信息给游戏服务器302。
进一步的,所述缓存模块303包括信息缓存模块3031、缓存决策模块3032、网络传输模块3033、用户请求模块3034、内存管理模块3035;信息缓存模块3031分为活动队列、不活动队列、删除队列,用于保存用户信息;缓存决策模块3032,用于定时管理信息缓存模1中的用户信息,依据用户信息中时间戳信息将用户信息保存到相应队列中;网络传输模块3033,用于将数据传输到在各服务器;用户请求模块3034,用于在信息缓存模块3034中未检索到用户信息时将用户登录的请求发送到登录服务器304;内存管理模块3035,用于对缓存模块303的内存进行管理。负责内存回收,分配,防止频繁分配内存造成内存碎片,并加快分配速度。
进一步的,缓存模块可以独立于登录服务器的缓存服务器或隶属于登录服务器。并且所述缓存服务器也可采取由多台相同功能的缓存服务器组成服务器集群,通过DNS随机选择IP进行负载均衡,从而达到较好的负载均衡,并且如果其中一台缓存服务器崩溃,登录将不受影响。
以上对本发明所提供的一种在网络游戏中用户登录的方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种在网络游戏中用户登录的方法,其特征在于,包括步骤a发送登录请求信息;b根据请求信息在预置的缓存模块中检索用户信息,若检索到,进入步骤d;否则,进入步骤c;c登录服务器在数据库中检索用户信息,若检索到,进入步骤d;否则,反馈提示信息给游戏服务器;d对检索到的用户信息进行认证,若认证通过,则反馈认证通过信息,用户登录进入游戏;否则,反馈提示信息给游戏服务器。
2.如权利要求1所述在网络游戏中用户登录的方法,其特征在于,所述预置的缓存模块中所保存的用户的信息包括用户时间戳信息,依据时间戳信息将用户信息保存到缓存模块中活动队列或不活动队列或删除队列;所述步骤b中检索用户信息包括步骤b1在活动队列中检索,如果检索到,则进入步骤d;b2在不活动队列中检索,如果检索到,则进入步骤d;b3在删除队列中检索,如果检索到,则进入步骤d,如果没有检索到,则返回没有检索到用户信息结果。
3.如权利要求2所述在网络游戏中用户登录的方法,其特征在于,若在缓存模块中检索到用户信息,则在步骤d之后进一步包括修改缓存模块中用户信息的时间戳信息,并将用户信息放置相应队列中。
4.如权利要求2中所述在网络游戏中用户登录的方法,其特征在于,若在登录服务器中检索到用户信息,则在步骤d之后进一步包括在缓存模块保存检索到的用户信息,同时在缓存模块中为用户设置一个时间戳信息。
5.如权利要求4中所述在网络游戏中用户登录的方法,其特征在于,在缓存模块中使用B树结构保存用户信息。
6.如权利要求1所述在网络游戏中用户登录的方法,其特征在于,步骤a与步骤b之间进一步包括游戏客户端将登录请求信息发送到游戏服务器,游戏服务器再将登录请求信息发送到缓存模块。
7.如权利要求1所述在网络游戏中用户登录的方法,其特征在于,所述缓存模块为独立于登录服务器的缓存服务器或隶属于登录服务器。
8.如权利要求7所述在网络游戏中用户登录的方法,其特征在于,进一步由所述缓存服务器构成服务器集群。
9.一种在网络游戏中用户登录的系统,其特征在于,该系统包括用户客户端、游戏服务器、缓存模块、登录服务器;用户客户端,用于在用户登录时将用户名、密码发送到游戏服务器;游戏服务器,用于将用户请求信息发送到缓存模块;缓存模块,用于保存用户信息,在用户登录时,检索缓存模块中是否有用户信息,如果没有,则将用户请求信息转发给登录服务器;如果有,则对用户信息进行检索认证。登录服务器,用于在缓存模块中未检索到用户信息时,有登录服务器再到数据库中检索用户信息,对检索到的用户信息,则对用户信息进行检索认证同时将用户信息返回给缓存模块,由缓存模块保存用户信息;如果没有,则返回错误信息给游戏服务器。
10.如权利要求9所述在网络游戏中用户登录的系统,其特征在于,所述缓存模块进一步包括信息缓存模块、缓存决策模块、网络传输模块、用户请求模块、内存管理模块;信息缓存模块分为活动队列、不活动队列、删除队列,用于保存用户信息;缓存决策模块,用于定时管理信息缓存模块中的用户信息,依据用户信息中时间戳信息将用户信息保存到相应队列中;网络传输模块,用于将数据传输到在各服务器;用户请求模块,用于在信息缓存模块中未检索到用户信息时将用户登录的请求发送到登录服务器;内存管理模块,用于对缓存模块的内存进行管理。负责内存回收,分配,防止频繁分配内存造成内存碎片,并加快分配速度。
11.如权利要求9或10所述在网络游戏中用户登录的系统,其特征在于,所述缓存模块为独立于登录服务器的缓存服务器或隶属于登录服务器。
12.如权利要求11所述在网络游戏中用户登录的系统,其特征在于,进一步由所述缓存服务器构成服务器集群。
全文摘要
本发明公开了一种在网络游戏中用户登录的方法及系统。所述方法包括步骤a.发送登录请求信息;b.根据请求信息在预置的缓存模块中检索用户信息,若检索到,进入步骤d;否则,进入步骤c;c.登录服务器在数据库中检索用户信息,若检索到,进入步骤d;否则,反馈提示信息给游戏服务器;d.对检索到的用户信息进行认证,若认证通过,则反馈认证通过信息,用户登录进入游戏;否则,反馈提示信息给游戏服务器。所述系统包括用户客户端、游戏服务器、缓存服务器、登录服务器。其中,缓存服务器进一步包括信息缓存模块、缓存决策模块、网络传输模块、用户请求模块、内存管理模块。
文档编号H04L29/06GK1866895SQ200610087020
公开日2006年11月22日 申请日期2006年6月12日 优先权日2006年6月12日
发明者左力志 申请人:北京金山数字娱乐科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1