`
cwqcwk1
  • 浏览: 86823 次
文章分类
社区版块
存档分类
最新评论

游戏平台账号认证网关的实现

 
阅读更多

账号认证网关,指的是对外提供账号认证服务的应用接口。本质上是一个进程,基于某种特定协议(如HTTP协议),接收账号认证请求,通过查询账号数据库验证账号是否正确,然后返回验证结果。

写这篇文章,主要是继续补充“游戏平台架构 账号篇”的内容。如果到这里还看不明白的童鞋不妨先看看前面写的这篇文章。

账号认证网关的实现,主要有以下几个技术点:

1、作为服务端进程,接收并处理请求

2、长连接数据库,查询账号是否正确

3、缓存查询过的账号,减少重复的查询


第一点,服务端进程

我们先对前面两点做一下分析,服务端进程需要24小时监听并处理请求,而且获取请求传过来的账号信息,并进行数据库查询,将结果告知请求。

这一来一回的过程,本质就是服务端socket与客户端socket通信的过程,从监听(listen),到接受请求(accept),到接收数据(recv),然后传输数据(send),最后关闭连接的过程。

这里还有一个需要注意的问题,如何去约定传递的数据格式?哪部分内容代表账号?哪部分内容又代表什么?所以我们在通讯时服务端和客户端都会事先协议好。

为了提高开发效率,同时也使我们能集中精力去处理业务,我选用了相对成熟的libevent,而且还可以跨平台,方便以后系统迁移,通讯协议则选HTTP。

libevent是一个异步事件触发的网络库,适用于windows、linux、bsd等多种平台。libevent提供了一系列应用程序编程接口,让开发者可以设定某些事件发生时所执行的函数,也就是说,libevent实现了对系统底层网络处理的封装,使得开发者可以更简单方便的处理网络事件。

HTTP协议是互联网上应用最为广泛的一种网络协议,是服务器端和客户端请求和应答的标准之一。

使用libevent 还有一个重要原因,她也实现了对HTTP的封装。这样我们就可以集中精力去处理业务代码了。

第二点,数据库查询

数据库查询其实没多少内容。到了做这个东西的时候,数据库已经决定好是什么类型了,所要做好的是如何去连接,去查询?

主要有以下几点:

1、最好使用长连接

2、考虑使用连接池,数据库查询相对内存读写是耗时的过程

3、对查询的内容做索引优化

第三点,缓存账号

账号要如何缓存,实现方式有很多种,简单介绍3种:

1、简单的,使用成熟的c++ map容器

2、 也不难,使用memcached作缓存

3、复杂的,两层结构,第一层用hash表,第二层用链表

剩下的就是具体的实现了,交给你自己了。

分享到:
评论

相关推荐

    架构设计+平台+基础服务

    - **平台对接 C 端服务 (P2C Service):** 实现社区实名认证、渠道热开关等功能。 - **平台对接 B 端服务 (P2B Service):** 支持渠道管理、社区优惠券发放等。 - **存储方式:** - 使用MySQL和Redis进行数据...

    网月CSA02配置方法

    网月路由器具备独特的NS-QoS技术,实现了智能流控和游戏优先等功能,在行为管理方面也有出色表现,既能有效管控内网行为,又能确保内网应用的高效运行。此外,在交换机领域,网月科技不仅在万兆环网应用上取得良好...

    基于PHP的个人发卡平台程序PHP版源码.zip

    这个平台通常用于在线销售各种数字产品或服务的激活码、序列号等,例如游戏点卡、软件许可证、会员账号等。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,因为它可以轻松地与HTML集成,提供动态内容生成。 ...

    MMORPG服务器端架构和设计

    跨平台支持是现代游戏的必备特性,允许服务器在不同的操作系统上运行,如Windows、Linux或Unix,以充分利用各种硬件和软件环境。 在具体的服务器端架构中,常见的组成部分包括: 1. **登陆服务器**:负责处理玩家...

    Dr.Com拨号器(UESTC)

    在"Dr.Com拨号器(UESTC)"项目中,C#被用来构建用户界面和实现拨号连接的逻辑,这使得程序具有良好的跨平台能力和高效的代码执行能力。 3. **Windows 8兼容性**:由于Dr.Com拨号器使用了C#编写,它可以利用.NET ...

    JAVA上百实例源码以及开源项目源代码

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

    HTML用户充值页面充值中心模板.rar

    这个模板设计适用于各种在线服务平台,如视频网站、游戏平台、在线教育平台等,它提供了便捷的界面供用户进行VIP会员的月度、年度及永久性充值操作。在创建这样一个页面时,设计师通常会考虑用户体验、交互性和安全...

    skynet高并发框架教程,详细API描述

    2. **登录服务**:实现用户的登录认证功能。 3. **加密算法**:使用加密算法保护敏感数据。 4. **DHexchange密钥交换算法**:实现密钥的安全交换。 5. **随机数**:生成安全的随机数。 6. **hmac64哈希算法**:使用...

    Openstack在趣游的应用

    OpenStack是一种开源的云计算管理平台项目,由NASA和Rackspace合作发起,旨在为公共及私有云的建设与管理提供软件的开源解决方案。趣游是一家知名的网络游戏公司,它在云计算方面的应用广泛,尤其在游戏服务器的部署...

    交大网络计算机作业4.doc

    11. **拨号上网认证**:拨号上网时,用户需要输入ISP(Internet Service Provider)提供的账号和密码进行身份验证,以便接入互联网。 12. **网络延迟排序**:通常情况下,局域网(Local Area Network, LAN)的延迟...

Global site tag (gtag.js) - Google Analytics