fix: 应用 xhigh 代码评审的跨端修复
来自 xhigh code review 的正确性/健壮性修复,覆盖全部五端: - server:鉴权 fail-closed、计量交叉校验与配额扣穿处理、WS 网关并发与关闭顺序、 billing 行锁、redis Lua 过期与设备槽刷新、config 解析 - desktop:会话 epoch 防串话、WS 重连与 401 处理、api 客户端复用、统一 usePoll 轮询 - android:握手时序、请求头封装、账户状态派生、按需重组 - ios:finalize 宽限、串行采集、错误文案服务端优先、删除死代码 CommitController Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -95,6 +95,12 @@ type ConsumeResult struct {
|
||||
TrialUsedToday int
|
||||
}
|
||||
|
||||
// Exhausted 本次扣减后余额与今日试用是否均已耗尽(扣穿)。
|
||||
// 网关据此在句间下发 QUOTA_EXCEEDED 并优雅结束会话("扣穿当句不掐断")。
|
||||
func (r ConsumeResult) Exhausted() bool {
|
||||
return r.BalanceSeconds <= 0 && r.TrialUsedToday >= protocol.TrialDailySeconds
|
||||
}
|
||||
|
||||
// Consume 扣减 seconds 秒(识别中每 2s 增量调用 + 会话结束补差)。
|
||||
func (m *Manager) Consume(ctx context.Context, uid string, seconds int) (ConsumeResult, error) {
|
||||
if err := m.ensureBalanceLoaded(ctx, uid); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user