This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

46 lines
1.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// Build 4229938 private-server surface: world entry, direct character switching,
// combat, traversal/buffs and movement. Everything else falls back to typed-neutral RPC replies.
//
type GameRouter struct {
GateSessions *GateSessionHub `json:"_gateSessions"`
Enabled4229938MethodIds []uint32 `json:"enabled4229938MethodIds"`
}
const (
GameRouter_WorldStateKey string = "client4229938-world"
)
//
// 客户端挂起(切后台 / 失焦,RequestPlayerStartHangup)期间必须停止一切后台推送。
// 客户端在 Hangup 时不再消费网络消息;服务端若继续全速写,TCP 缓冲会被灌满,
// 客户端回到前台时判定「与服务器的网络连接已断开」⇒ RPC session 归零
// (Player.log: session=0|pid=0|0->0 + RPCNotify invalid socket)⇒
// 进 Reconnect Module ⇒ 12 秒重连超时。
// 实测 2026-09-22 23:58:19 / 23:58:32 / 00:05:19 三次断线都是这个形态,
// 且每次都紧跟在 [Davinci] type=TimeScaleAnomaly 之后 0.5 ms。
// ⛑️ WorldEntryState.IsHangup 在加这道门之前全项目**只有写入、零处读取**
// (挂起只是记了个日志就不管了),这是断线重连的直接原因。
// 所有后台推送循环在 tick 开头调用它:挂起期间只睡不推,恢复后自动继续。
//
func GameRouter_IsBackgroundPushPaused(ctx context.Context, session any) bool {
// Router implementation for GameRouter_IsBackgroundPushPaused
return true
}
func GameRouter_Build(ctx context.Context, ) any {
// Router implementation for GameRouter_Build
var zero any; return zero
}