概述

在游戏开发中很多场景都会用到房间模型,例如棋牌的桌子匹配、聊天室等等。除了游戏以为很多业务场景都可以利用房间模式来解决。

场景举例

  1. 棋牌房间分配

    将在线玩家匹配到同一个房间牌桌上进行游戏

  2. 游戏副本

    游戏副本也可以设计为一个一个的房间

  3. 在线聊天室(直播)

    为每一个主播创建一个房间,用户要跟主播互动就进入到对应的房间即可

房间模块解决的问题

[!TIP|style:flat|label:解决多线程资源资源抢占的问题|iconVisibility:hidden] 通常多个客户端用户请求时序是不可控的,如果不做管控当两条消息在同一个时间(间隔可能小于10ms)到达服务器, 那么就会出现多线程并行抢占资源的问题,导致游戏逻辑混乱。

解决方案

引入消息队列,将请求消息串行化。解决了资源锁的问题,同时在开发过程中完全不需要考虑消息并发的问题,所有指令都是串行执行的。

房间模块生命周期

alt 房间生命周期

Copyright © 梁大帅 2020 all right reserved,powered by Gitbook该文件修订时间: 2020-05-17 18:22:48

results matching ""

    No results matching ""