您好,欢迎访问利联科技官网!    24小时服务热线:400-161-0880    我们有最适合您的产品和最好的服务。登录  /  注册  /  旧平台入口

游戏高防服务器的架构设计

 

当使用游戏高防服务器进行开发游戏的时候,如何更好地设计游戏内的架构成为许多新手用户面临的首要问题。以下

是为大家总结的需要的架构设计。首先是需要创建用户唯一的id,因为一般服务器是世界服,无分区,所以用户的id

必须是全局唯一的。可以利用redis的incr方法,原子的递增,如果不想被别人根据userid的递增推算出有多少注册用

户,递增的梯度可以随机,比如每次递增的值从1到1024中随机一个。


游戏高防服务器的登陆动能:一般都是需要接第三方登陆,登陆这一块是http操作,我们统一提供一个web服务,用

来做登陆验证。因为在登陆时,调用第三方的http服务,这个过程可能很慢,如果放在逻辑服务器的话,可能会卡业

务逻辑任务。因为可能不同的玩家业务请求可能同在一个线程中,如果有任务卡了,那么这个任务以后新来的请求请

会卡住,导致消息延迟。


游戏高防服务器的脚本调用:在验证游戏是否合法时,客户端与服务器都要验证,验证的算法是一样的,所以可以使

用脚本来写,写一份脚本,在服务器与客户端中同时使用。可以使用lua。同一个算法使用同一个脚本,这样在开发新

的同类型棋牌游戏时,只需要替换一下这个脚本就行了,不用再重复开发。


游戏高防服务器的获取公告:这个需要放在web服务中。公告一般是游戏登陆的时候向服务器获取一次。把它放在we

b服务器中,与业务逻辑分离的好处是,当业务逻辑服务器维护或更新的时候,不影响用户的登陆,和获取公告,这样

用户体验会好一些。


游戏高防服务器的创建房间:当房间主创建房间时,房间的id需要在任何台服务器上可以查询到,所以创建房间成功后,

房间id要存储在共享内存redis中,每个房间id对应一个房间所在的ip地址或服务器id.这样,当有用户要进入房间,在查

询房间id时,可能判断这个房间是否和自己登陆的游戏服务器相同。查找加入房间。根据房间id查询房间,查找到房间

后,获取房间所在的ip地址或服务器id,如果发现和自己所登陆的服务器一样,直接可以加入房间。如果不一样,把这个

房间所在的ip和端口返回给客户端,让客户端重新与房间所在的服务器建立连接,使用登陆时的token验证用户。



您可能还会对下面的文章感兴趣: