账号认证网关,指的是对外提供账号认证服务的应用接口。本质上是一个进程,基于某种特定协议(如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表,第二层用链表
剩下的就是具体的实现了,交给你自己了。
分享到:
相关推荐
格尔安全认证网关用户手册(user manual)
格尔安全认证网关
GMT 0026-2014 安全认证网关产品规范.PDF
2、 服务端请求认证原文:应用服务端向网关请求认证原文。 3、 网关返回认证原文:网关产生认证原文并返回给应用服务端。 4、 服务端返回认证原文:应用服务端将认证原文返回给应用客户端。 5、 客户端认证:应用...
(修订版)PS Tunnel2000 电力专用纵向加密认证网关使用指南20170228.pdf
随着网络的快速发展,网络应用以其高效、便捷的特点得到广泛应用,如网 上证券、网上银行、电子政务、电子商务、企业远程办公等。越来越多的重要业 务在网上办理,越来越多的重要信息在网络中传输,如何保护这些重要...
基于.net6的跨平台物联网网关 基于.net6的跨平台物联网网关 基于.net6的跨平台物联网网关 基于.net6的跨平台物联网网关 基于.net6的跨平台物联网网关 基于.net6的跨平台物联网网关 基于.net6的跨平台...
其包括完整的联通短信网关实现代码,可以很好的参考
springboot整合Oauth2,GateWay实现网关登录授权验证
不管你处于那一个梦想环节,这款游戏支付源码也许适合你 ! 源码内容我就不过多介绍,你们看演示站就可以了、支持主流几款游戏 热血传奇 传奇世界 传奇3 魔域 天龙八部 劲舞团 诛仙 完美世界 奇迹 神泣 ...
Linux平台下计费网关的设计及实现.pdf
Linux平台上WAP网关的实现.pdf
VOIP语音网关设计与实现
payadmin游戏支付平台网站源码 支付网关
文件共享访问控制网关技术白皮书 时代亿信 无线认证 访问控制网关 统一管理平台 单点登录
网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关网关
智能家居433 MHz射频通信协议栈设计与网关实现.pdf
网络游戏-基于家庭网关的游戏实现方法、家庭网关及移动终端.zip
基于linux系统的无线嵌入式网关设计与实现.pdf
springboot整合gateway实现网关功能