客服中心

微信号:910378936

赌场棋牌公司(斗牛游戏棋牌)

分类: 今日头条 / 发布于2021-07-30 09:39

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

一、棋牌服务器的特点

1.棋牌不分区域,不提供服务

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

2.房间模式

也就是在同一个游戏,同一个房间,同一个房间的人可以接收到别人的消息。

3.每个房间的操作必须是连续的

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

二、系统架构

1.作用设计

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

获取游戏公告,并将其放到web服务中。公告通常在游戏登录时从服务器获得一次。放在web 斗牛游戏棋牌server中,与业务逻辑分离的好处是,在维护或更新业务逻辑服务器时,不会影响用户登录和获取公告,这样用户体验会更好。

为用户创建唯一的id。因为象棋游戏服务器是一个世界服务,没有分赌场棋牌公司区,所以用户的id必须是全局唯一的。你可以用redis的incr方法来增加原子。如果不想让别人根据userid的增加来计算注册用户数,那么增加的梯度可以是随机的,比如每次增加的值是从1到1024随机的。

创建房间时,当房间主人创建房间时,需要在任何服务器上查询房间id,因此房间创建成功后,房间id应该存储在共享内存redis中,每个房间id对应一个房间所在的ip地址或服务器id。这样,当用户想要进入房间时,可以判断该房间是否与他在查询房间id时登录的游戏服务器相同。

找个房间加入。根据房间id查询房间。找到房间后,获取房间所在的ip地址或服务器id。如果发现与您登录的服务器相同,可以直接加入房间。如果没有,将房间的ip和端口返回给客户端,让客户端重新与房间所在的服务器建立连接,并在登录时使用令牌对用户进行身份验证。

游戏脚本调用。在验证游戏是否合法时,客户端和服务器都需要验证,验证算法是一样的,所以可以用一个脚本写一个脚本,在服务器端和客户端都使用。可以使用Lua。同样的算法使用同样的脚本,所以在开发同类型的新棋局时,只需要替换这个脚本,不需要重复开发。

2.后台管理系统

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

3.玩家在同一个屏幕上

玩家共享同一个屏幕是棋牌类游戏的一个关键点,对于玩过大型arpg或者mmo游戏的程序员来说并不难。因为同一个屏幕意味着服务器转发客户端的消息。

第三,服务器架构

1.登录时,客户端首先向登录web服务器请求登录信息,成功登录后返回登录令牌。为了适应大规模的web请求和斗牛游戏棋牌 登录服务的稳定性,可以使用nginx进行负载均衡。

2.成功登录后,请求负载平衡服务器获取连接的服务服务器。该负载平衡服务器可以与登录web的过程相同,也可以是独立的。赌场棋牌公司

3.获取成功的登录令牌和要连接的服务服务器的ip和端口后,连接到服务服务器。连接成功后,使用令牌登录服务器以验证用户是否已登录。

4.同一房间的用户应该连接到同一个物理服务器。上面已经说过了。

5.redis用作共享缓存。

6.mysql用于持久存储。

7.数据库持久化服务器,统一执行数据仓库操作。

第四,需要解决的技术问题

1.数据共享

由于棋牌游戏没有划分区域和服务,所以我们按照世界服务的思想来设计服务器,即服务器是N台以上物理机的集群。当用户登录到服务器并创建房间时,根据负载平衡算法,它可能在任何服务器上。因此,无论用户登录到哪个服务器,都可以获得自己的数据。

2.确保房间操作的秩序

/p>

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


3、如何进入房间


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


五、关于网关的问题


1、什么是网关?它是一个网络连接到另一个网络的“关口”。按照不同的分类标准,网关也有很多种。


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


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

个赞
  • 微信扫码
— 分享给朋友 —
  • 微信扫码
下一篇:当地棋牌游戏(飞飞棋牌游戏)
相关资源:


微信号:910378936
点击复制
QQ号:910378936
点击复制