本地隔离环境、联调与排错 private

本地隔离环境、联调与排错

回答“本地节点如何启动,以及连接、战区、开战、地图和配置问题怎样分层定位”。

返回技术文档目录

11. 本地隔离服务器

重建产物位于:

Source/server/server_chain/.generated-config/runtime

ConfigFile/ConfigLoadNodes.Yaml 当前把节点配置为 127.0.0.1:

节点端口
Login7000
Lobby7100
Battle20100
BattleMgr20200
Channel / ChannelMgr20400 / 20500
Team / TeamMgr20600 / 20700
Agent20900
Ranking21000
IdipFcm21100
Matching21400
Gateway21500
PlayerMgr21600

ConfigConst.Yaml 还定义 DefaultPortBattleClient=7200。实际战斗连接地址应以服务器下发值和日志为准,不要只凭内部监听端口猜测。

基础依赖:

  • ZooKeeper 127.0.0.1:2181
  • 隔离 Redis 约定 127.0.0.1:6388
  • 隔离 MySQL 约定 127.0.0.1:3307
  • 隔离 ConfigShareData 已指向这些实例
  • MySQL schema 和 Redis 战区种子数据已初始化

建议顺序:依赖 -> Manager -> Worker -> Lobby/Login -> 辅助节点。在 runtime 目录按节点启动:

dotnet Server.dll -type PlayerMgr -zookeeper 127.0.0.1:2181
dotnet Server.dll -type BattleMgr -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Battle -zookeeper 127.0.0.1:2181
dotnet Server.dll -type TeamMgr -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Team -zookeeper 127.0.0.1:2181
dotnet Server.dll -type ChannelMgr -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Channel -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Ranking -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Matching -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Agent -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Lobby -zookeeper 127.0.0.1:2181
dotnet Server.dll -type Login -zookeeper 127.0.0.1:2181

原始 startnode.bat/startserver.bat 写的是公网 ZooKeeper,不适合隔离环境,不能直接照搬。

最小健康检查:端口监听 -> ZooKeeper 临时节点 -> Worker 在 Manager 注册且 Ability 有效 -> Redis 战区 key 非空 -> Login 返回可见服 -> PlayerMgr 分配 Lobby -> 客户端成功从 Login 切到 Lobby。

12. 联调排错

按层定位:

配置/内容 -> 资源存在 -> 进程启动 -> 服务发现 -> TCP 会话 -> 协议处理
          -> 业务状态 -> ECS 实体 -> Unity View/UI
现象优先检查
登录连接失败ServerCfg 当前 IP、7000、Login 日志
战区列表为空Redis 战区 key、服状态、列表协议
登录后马上断PlayerMgr、Lobby 注册、返回地址
创建房间失败TeamMgr/Team 注册、玩法配置
开战失败BattleMgr 的 Battle 节点、Ability、地图
一直卡加载SceneInfo、地图 bytes、GUID、LoadSceneSuc
怪不出现Spawner ID、SignalFilter、Trigger、权威模式
怪重复普通与 HostClient/Server Spawn 是否重复启用
怪不移动NavMesh 资产、isOnNavMesh、目标采样、Link
双端位置不同地图版本、SceneGuid、随机种子、同步修正
改表不生效persistentDataPath、生成产物、服务端同步
协议异常proto 版本、字段号、opcode、Session 类型

跨进程搜索时保留:playerId、Login/Lobby/Battle SessionId、battlefieldId/serverId、teamId/battleId、mapName/sceneGuid/randomSeed/templateIndices、opcode 和时间戳。openId 必须脱敏。


上一篇:配置系统 下一篇:学习路线与源码索引