因为棋牌游戏的同步数据量比较小。一般常见的同步方式有两种:
a,客户端主动拉取。
客户端定时主动向服务器请求一个用户的消息队列,当一个玩家有操作需要同步到其他玩家时,在服务器端先把这个消息放到这个用户的消息队列中。等待客户端的拉取操作。这种方式的好处是,不需要考虑网络闪断或网络不好的情况,信息都是同步获取的。缺点是,定时拉取的时间间隔很短,可能不到一秒就会拉取一次。
b,服务器主动推送
当一个用户出牌的消息需要同步给其他玩家时,服务器会获得这个玩家与服务器建立的socket连接,然后服务器使用socket 主动向客户端发送消息。
这种方式要考虑网络闪断,消息丢失的问题。因为服务器推送的消息,客户端有可能会收不到。所以客户端需要根据心跳来判断网络是否有断开过,如果有断开,需要重新从服务器拉取整个房间状态的消息。或者根据服务器发送的消息号,如果客户端发现接收到的服务器消息号有跳号的,比如应该接收10,却收到了12,说明中间有消息丢失,需要重新拉取整个房间的状态信息。
这种方式的缺点是,开发复杂,需要考虑一些网络问题。优点是,只有在有消息的时候才会推送,没有的话不推送,不占用带宽等系统资源,可以增加用户同时在线量,也就是增加了服务器的承载量。
棋牌服务器的用户玩家同屏是怎样实现的?看过了以上所有的文章之后,对于棋牌服务器的用户玩家同屏是怎样实现的相信你已经心里有数了,你可以看到服务器在游戏运行中存在的重要地位,所以大家在选择服务器的时候一定要认真挑选。
以上就是金山云为您带来的棋牌服务器的用户玩家同屏是怎样实现的的相关内容,如果您还想了解更多棋牌服务器的用户玩家同屏是怎样实现的的相关问题您可以点击页面中的链接进行具体了解。金山云提供云服务器,云主机,云存储,私有云,数据库,物理主机,RDS,KS3,SLB,KEC的全套产品服务,部分产品可以免费体验,而且会有定期的优惠、代金券等相关的活动。成立7年来,金山云始终坚持以客户为中心的服务理念,提供安全、可靠、稳定、高品质的云计算服务。以上是对棋牌服务器的用户玩家同屏是怎样实现的相关介绍,如果觉得对您有帮助可以收藏。欢迎随时查看。