升级至8069版本:版本号更新/代理配置系统/红包计时埋点/长连接重构/回调修复

This commit is contained in:
2026-02-26 10:44:13 +08:00
parent 7cbd3d061d
commit 40a74d2ea7
38 changed files with 3639 additions and 235 deletions
+65
View File
@@ -11,6 +11,7 @@ import (
"strings"
"xiawan/wx/clientsdk/baseinfo"
"xiawan/wx/clientsdk/baseutils"
"xiawan/wx/clientsdk/mmtls"
"github.com/gogf/gf/database/gredis"
)
@@ -21,6 +22,25 @@ var GlobalSetting Setting
// TaskExecWaitTimes 任务执行间隔时间 500毫秒
var TaskExecWaitTimes = uint32(500)
// ProxyConfig 代理配置
type ProxyConfig struct {
// 代理失效后是否允许直连(false=不允许,连接失败;true=允许,降级为直连)
AllowDirectOnProxyFail bool `json:"allowDirectOnProxyFail"`
// 长连接超时时间(秒)
LongConnTimeout int `json:"longConnTimeout"`
LongConnReadTimeout int `json:"longConnReadTimeout"`
// 长连接建立时的重试次数
LongConnRetryTimes int `json:"longConnRetryTimes"`
// 长连接建立时的重试间隔(毫秒)
LongConnRetryInterval int `json:"longConnRetryInterval"`
// 短连接超时时间(秒)
ShortConnTimeout int `json:"shortConnTimeout"`
// 长连接断开后最大重试恢复次数
MaxLongRetryTimes int `json:"maxLongRetryTimes"`
// 长连接断开后重试间隔(秒)
LongRetryInterval int `json:"longRetryInterval"`
}
// Setting 设置
type Setting struct {
Debug bool `json:"debug"`
@@ -63,6 +83,8 @@ type Setting struct {
Mac2Ipad bool `json:"mac2ipad"`
// 是否开启 car2ipad
Car2Ipad bool `json:"car2ipad"`
// 代理配置
ProxyConfig ProxyConfig `json:"proxyConfig"`
}
// getExternal 请求获取外网ip
@@ -148,4 +170,47 @@ func ConfigSetUp() {
if GlobalSetting.TargetIp == "" && GlobalSetting.SycnTargetIpUrl != "" {
GlobalSetting.TargetIp = getExternal()
}
// 设置代理配置默认值
if GlobalSetting.ProxyConfig.LongConnTimeout <= 0 {
GlobalSetting.ProxyConfig.LongConnTimeout = 15
}
if GlobalSetting.ProxyConfig.LongConnReadTimeout <= 0 {
readTimeout := GlobalSetting.ProxyConfig.LongConnTimeout
if readTimeout < 210 {
readTimeout = 210
}
GlobalSetting.ProxyConfig.LongConnReadTimeout = readTimeout
}
if GlobalSetting.ProxyConfig.LongConnRetryTimes <= 0 {
GlobalSetting.ProxyConfig.LongConnRetryTimes = 30
}
if GlobalSetting.ProxyConfig.LongConnRetryInterval <= 0 {
GlobalSetting.ProxyConfig.LongConnRetryInterval = 500
}
if GlobalSetting.ProxyConfig.ShortConnTimeout <= 0 {
GlobalSetting.ProxyConfig.ShortConnTimeout = 15
}
if GlobalSetting.ProxyConfig.MaxLongRetryTimes <= 0 {
GlobalSetting.ProxyConfig.MaxLongRetryTimes = 10
}
if GlobalSetting.ProxyConfig.LongRetryInterval <= 0 {
GlobalSetting.ProxyConfig.LongRetryInterval = 60
}
// 同步代理配置到 mmtls 全局配置
mmtls.GlobalProxyConfig.LongConnTimeout = GlobalSetting.ProxyConfig.LongConnTimeout
mmtls.GlobalProxyConfig.LongConnReadTimeout = GlobalSetting.ProxyConfig.LongConnReadTimeout
mmtls.GlobalProxyConfig.LongConnRetryTimes = GlobalSetting.ProxyConfig.LongConnRetryTimes
mmtls.GlobalProxyConfig.LongConnRetryInterval = GlobalSetting.ProxyConfig.LongConnRetryInterval
mmtls.GlobalProxyConfig.ShortConnTimeout = GlobalSetting.ProxyConfig.ShortConnTimeout
mmtls.GlobalProxyConfig.AllowDirectOnProxyFail = GlobalSetting.ProxyConfig.AllowDirectOnProxyFail
fmt.Printf("======== 代理配置已同步 ========\n")
fmt.Printf("代理失效后允许直连: %v\n", GlobalSetting.ProxyConfig.AllowDirectOnProxyFail)
fmt.Printf("长连接超时: %d秒\n", GlobalSetting.ProxyConfig.LongConnTimeout)
fmt.Printf("长连接重试次数: %d次\n", GlobalSetting.ProxyConfig.LongConnRetryTimes)
fmt.Printf("长连接重试间隔: %dms\n", GlobalSetting.ProxyConfig.LongConnRetryInterval)
fmt.Printf("短连接超时: %d秒\n", GlobalSetting.ProxyConfig.ShortConnTimeout)
fmt.Printf("========================\n")
}