<legend id='b959H'><style id='b959H'><dir id='b959H'><q id='b959H'></q></dir></style></legend>
  • <i id='b959H'><tr id='b959H'><dt id='b959H'><q id='b959H'><span id='b959H'><b id='b959H'><form id='b959H'><ins id='b959H'></ins><ul id='b959H'></ul><sub id='b959H'></sub></form><legend id='b959H'></legend><bdo id='b959H'><pre id='b959H'><center id='b959H'></center></pre></bdo></b><th id='b959H'></th></span></q></dt></tr></i><div id='b959H'><tfoot id='b959H'></tfoot><dl id='b959H'><fieldset id='b959H'></fieldset></dl></div>
        <tfoot id='b959H'></tfoot>

        <small id='b959H'></small><noframes id='b959H'>

          <bdo id='b959H'></bdo><ul id='b959H'></ul>

      1. 您好,欢迎来到淘贝(深圳)网络科技有限公司
        13168003329
        QQ:2386331038
        棋牌游戏开发|麻将捕鱼游戏源码出售|手机房卡游戏开发定制
        您的位置:主页 > 棋牌资讯 >

        棋牌资讯

        联系我们

        棋牌游戏开发|麻将捕鱼游戏源码出售|手机房卡游戏开发定制

        地址:深圳市龙岗区园山街道中兴智汇大厦E栋16楼
        QQ:2386331038

        咨询热线13168003329

        辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发
        给你介绍有关棋牌游戏开发服务器的架构设计要点

        作者:深圳棋牌开发公司 (http://www.mosoapp.com/) 发布时间:2020-09-13 17:39人气:

          在网络游戏这片市场,棋牌游戏占据了很大一部分市场份额,未来的发展前景也非常大,那么大家对棋牌游戏开发服务器架构设计要点有哪些了解呢?


          一、棋牌类服务器的辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发特点


          1、棋牌类不分区不分服


          一般来说,棋牌游戏都是不分区不分服的。


          2、房间模式


          即在同一局游戏中就是在辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发同一个房间中,同一个房间中的人可以接收到其他人的消息。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          3、每个房间的操作必须是顺序性


          这个特性类似与一般游戏的回合制,每个玩家的操作都是有顺序性的。


          二、系统架构


          1、功能设计


          登陆。一般都是需要接第三方登陆,登陆这一块是http操作,我们统一提供一个web服务,用来做登陆验证。因为在登陆时,调用第三方的http服务,这个过程可能很慢,如果放在逻辑服务器的话,可能会卡业务逻辑任务。因为可能不同的玩家业务请求可能同在一个线程中,如果有任务卡了,那么这个任务以后新来的请求请会卡住,导致消息延迟。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          获取游戏公告,也放在web服务中。公告一般是游戏登陆的时候向服务器获取一次。把它放在web服务器中,与业务逻辑分离的好处是,当业务逻辑服务器维护或更新的时候,不影响用户的登陆,和获取公告,这样用户体验会好一些。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          创建用户唯一的id,因为棋牌类游戏服务器是世界服,无分区,所以用户的id必须是全局唯一的。可以利用redis的incr方法,原子的递增,如果不想辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发被别人根据userid的递增推算出有多少注册用户,递增的梯度可以随机,比如每次递增的值从1到1024中随机一个。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          创建房间,当房间主创建房间时,房间的id需要在任何台服务器上可以查询到,所以创建房间成功后,房间id要存储在共享内存redis中,每个房间id对应一个房间所在的ip地址或服务器id。这样,当有用户要进入房间,在查询房间id时,可能判断这个房间是否和自己登陆的游戏服务器相同。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          查找加入房间。根据房间id查询房间,查找到房间后,获取房间所在的ip地址或服务器id,如果发现和自己所辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发登陆的服务器一样,直接可以加入房间。如果不一样,把这个房间所在的ip和端口返回给客户端,让客户端重新与房间所在的服务器建立连接,使用登陆时的token验证用户。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          游戏脚本调用。在验证游戏是否合法时,客户端与服务器都要验证,验证的算法是一样的,所以可以使用脚本来写,写一份脚本,在服务器与客户端中同时使用。可以使用lua。同一个算法使用同一个脚本,这样在开发新的同类型棋牌游戏时,只需要替换一下这个脚本就行了,不用再重复开发。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          2、后台管理系统


          这个一般是根据运营需求开发的,每个公司不一样。不过有一点,后台管理系统可能要和游戏服务器通信,这种通信方式最好是采用redis的订阅/发布机制。


          3、玩家同屏


          玩家同屏是棋牌游戏中的一个重点,对于做过那些大型的arpg,或mmo游戏的程序员来说,这并不是什么难事。因为同屏就是服务器对客户端的消息进行转发。


          三、服务器架构


          1、登陆时,客户端首先向登陆的web服务器请求登陆信息,登陆成功之后,返回登陆的token,为了适应大规模的web请求和登陆服务的稳定,可以使用nginx做负载均衡。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          2、登陆成功之后,请求负载均衡服务器,获取一台连接的业务服务器。这个负载均衡服务器可以和登陆web在一个进程中,也可以独立出来。


          3、拿到登陆成功的token和需要连接的业务服务器的ip和端口之后,再去连接业务服务器。连接成功之后,要使用token到登陆服务器去验证,这个用户是否登陆了。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          4、同一个房间的用户要连接到同一台物理服务辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发器上面。在上面已经说过了。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          5、redis用来做共享缓存。


          6、mysql做持久化存储。


          7、数据库持久化服务器,统一做数据入库操作。


          四、需要解决的技术点


          1、数据共享


          因为棋牌类游戏不分区不分服,我们在设计服务器的时候,是按世界服的思想去设计,即服务器是一个n多台物理机的集群。当用户登陆服务器,创建房间时,可能根据负载均衡算法,它可以在任何一台服务器上面。所以,不管用户登陆到哪一台服务器上面了,都可以获得自己的数据。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          2、保证房间操作的顺序性


          我们可以把每个房间到达服务器的消息封装为一个任务,把这个任务放到消息队列中,然后有一个任务执行者去按顺序执行这些任务。创建房间成功之后,接下来的操作都要保证它的顺序性,所以房间需要有一个它自己的消息个队列。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          3、如何进入房间


          在同一局游戏中,我们要求所有人都在同一个房间中,我们可以规定在同一个房间中的用户,必须登陆到同一台物理服务器上面。在创建房间完成之后,其他人根据房间号查找房间的时候,可以根据房间号,获取这个房间所在的服务器ip和端口,判断一个当前用户登陆的服务器ip与房间所在的服务器ip是否相同,如果相同,就不做切换,如果不一样,客户端就使用ip和端口,连接到房间所在的服务器上面。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          五、关于网关的问题


          1、什么是网关?它是一个网络连接到另一个网络的“关口”。按照不同的分类标准辽源手机棋牌开发|通化手机棋牌开发|白山手机棋牌开发|松原手机棋牌开发,网关也有很多种。

        给你介绍有关棋牌游戏开发服务器的架构设计要点


          2、网关的作用:第一,转发消息包;第二,维护与客户端的连接。


          3、棋牌类游戏需要网关吗?我认为不太需要,因为棋牌类游戏业务比较单一,而且开发网关也是一个复杂的工作,没必要在这个上面花太多的时间。

        推荐资讯

        13168003329