docs: record remote configuration source and browser evidence
This commit is contained in:
@@ -10,10 +10,10 @@
|
||||
|
||||
```
|
||||
┌─────────────┐ 配置请求(HTTP) ┌──────────────────┐
|
||||
│ 新前端 │ ─────────────────► │ 配置服务器 │ 返回 update_json (含 urlserver)
|
||||
│ 新前端 │ ─────────────────► │ 配置服务器 │ 返回 update_json (身份层级配置)
|
||||
│ (Cocos) │ ◄───────────────── │ (gameserver 地址) │
|
||||
└─────────────┘ └──────────────────┘
|
||||
│ ws://ip:port (拿到 urlserver 后)
|
||||
│ ws://ip:port (解析服务器配置后)
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 大厅服务器(agent) ←切换→ 房间服务器(room) │
|
||||
@@ -47,7 +47,10 @@ WebSocket 在 `min_tcp(config)`(`00_minhttp.js:256`)内创建:
|
||||
var ws = new WebSocket("ws://" + config.ipport); // 00_minhttp.js:258,例: ws://127.0.0.1:5414
|
||||
```
|
||||
- `config.ipport` 来自 `GameData.Server`(`12_Logic.js:856 / 900 / 941` 等连接函数把 `server` 赋给 `config.ipport`)。
|
||||
- `GameData.Server` 的来源(netType==0 分支):配置服务器回包 `ServerUrl_Succ` 内 `GameData.Server=_msg.data.urlserver`(`12_Logic.js:549`)。
|
||||
- `GameData.Server` 的来源(netType==0 分支):启动实际调用 `get_config`(`12_Logic.js:521 / 1330`),以 POST 空 body 读取配置,URL 为 `gameserver + "?" + min_timestamp()`;`getConfig_Succ` 对响应文本 JSON.parse 后保存到内存 `GameData.serverConfig.data`。这里的 `data` 是客户端包装,远程 JSON 根对象本身不带这一层。
|
||||
- `get_paravalue` 按全局 → agent → game → channel → market 查找;每层第一个身份宽松相等的条目生效,只有 truthy 参数覆盖继承值,缺少层级即返回继承值,对象整体覆盖。
|
||||
- `getConfig_Succ` 选择 truthy `game_server_tcp`,否则 `player_server_tcp`;`serverType != 0` 时在配置解析之后覆盖为本地地址。debug/release 均读取配置,`isDebugger` 不控制读取开关。
|
||||
- 旧 `ServerUrl_Succ`(`12_Logic.js:533`)中的 `data.urlserver` 属于未启用的旧请求路径,不能作为当前启动配置契约。整份远程配置不写磁盘或 localStorage。
|
||||
- ⚠️ 注意:`Logic.setGameServer()`(`12_Logic.js:1270`)只设置 `Game_Config.Debugger.gameserver`(配置文件 URL),**不**设置 `GameData.Server`;两者是两步、不可混淆。
|
||||
- 切换房间/大厅服时,`GameData.Server` 被替换为 `_msg.data.roomserver` / `_msg.data.agentserver`(`09_Net.js:509 / 526`)。
|
||||
- `GameData.Server` 可为**单个字符串,也可为数组**(多候选服务器)。为数组时按 `GameData.serverIndex` 轮询,详见第 7 节。
|
||||
@@ -176,7 +179,8 @@ if (route === "platform" || route === "agent" || route === "room") {
|
||||
|
||||
```
|
||||
1. 启动 AppStart → HTTP 请求配置服务器(gameserver=Game_Config.Debugger.gameserver)
|
||||
→ 回包 ServerUrl_Succ → GameData.Server = _msg.data.urlserver (12_Logic.js:549)
|
||||
→ get_config POST 空 body → getConfig_Succ JSON.parse → 内存 GameData.serverConfig.data
|
||||
→ get_paravalue 按身份层级读取 → game_server_tcp 或 player_server_tcp → 显式本地覆盖
|
||||
2. (netType==0 时) AppStart 启 GameData.TcpTimer = setInterval(..., 3*GameData.timer) = 30s 首连看门狗
|
||||
(12_Logic.js:485-496):超时则 GameUI.OpenTips("网络状况不好...") 并 Net.ws_tcp.close()
|
||||
首连成功(onopen)或拿到配置后会 clearTimeout 它。
|
||||
|
||||
Reference in New Issue
Block a user