AzerothCore中authserver、worldserver与client的关系及通信问询
AzerothCore 服务器组件核心用途与通信流程
核心组件核心用途
- authserver:专注账号安全验证的独立组件,负责处理客户端登录请求、账号密码校验、角色列表返回,全程不涉及任何游戏内世界逻辑。它直接对接
auth数据库,验证通过后向客户端发放专属会话令牌,允许客户端连接worldserver。 - worldserver:游戏世界的核心运行载体,负责维护所有游戏内世界状态——包括玩家角色数据、NPC/怪物动态、地图事件、物品交互、GM指令执行等。它对接
world数据库,实时同步世界状态变更,是所有游戏内操作的处理中心。
客户端与服务器完整通信流程
- 登录验证阶段:客户端首先连接authserver,提交账号密码;authserver校验通过后,返回玩家的角色列表,同时生成临时会话凭证。
- 进入游戏世界:玩家选定角色后,客户端携带会话凭证直接连接worldserver;worldserver向authserver验证凭证有效性,确认无误后加载角色游戏数据,将玩家接入对应游戏场景。
- 游戏内操作与状态同步:
- 玩家的所有游戏内操作(移动、技能释放、物品使用、GM指令等)直接发送至worldserver。
- worldserver处理操作后,更新内存中的世界状态,同时将必要变更同步至
world数据库。 - worldserver通过**更新差分(Update Diff)**机制,仅将玩家需要感知的状态变化(如附近怪物移动、队友技能释放)推送给对应客户端,全程无需authserver中转。
- 退出/角色切换:玩家退出游戏或切换角色时,worldserver保存角色当前状态至数据库,客户端断开与worldserver的连接,回到authserver提供的角色选择界面。
世界状态变更的核心逻辑
worldserver是世界状态的唯一维护者,所有变更均由它直接处理:例如玩家击杀怪物后,worldserver立即更新怪物存活状态、玩家经验值,同步至数据库,再将这些变化推送给相关客户端,全程不需要authserver参与。
内容的提问来源于stack exchange,提问作者Fortunos
相关产品推荐
相关产品推荐

