代码拉取完成,页面将自动刷新
同步操作将从 暗月隐落/快验网络验证后端2 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package core
import (
"EFunc/utils"
"fmt"
"github.com/imroc/req/v3"
"net/http"
"server/Service/KuaiYanUpdater"
"server/api/middleware"
utils2 "server/utils"
"server/global"
"time"
)
func RunWindowsServer() {
Router := InitRouters() //注册路由 和绑定 具体实现函数
// 关键点【解决页面刷新404的问题】
/* Router.NoRoute(func(c *gin.Context) {
c.String(404, "")
return
})*/
端口 := fmt.Sprintf(":%d", global.GVA_CONFIG.Port) //:18888
global.GVA_Gin = &http.Server{
Addr: 端口,
Handler: Router,
ReadTimeout: 20 * time.Second,
WriteTimeout: 20 * time.Second,
MaxHeaderBytes: 1 << 20,
}
// 保证文本顺序输出
// In order to ensure that the text order output can be deleted
time.Sleep(10 * time.Microsecond)
//global.GVA_LOG.Info("web 服务器启动成功", zap.String("端口", 端口))
fmt.Printf(`
欢迎使用 飞鸟快验后台管理
当前版本:v.%s
后台端口:%s
管理员后台运行地址:http://127.0.0.1%s/Admin
代理后台运行地址:http://127.0.0.1%s/Agent
`, global.X系统信息.B版本号当前, 端口, 端口, 端口)
fmt.Printf("是否有读写文件权限:%v\n", utils2.X系统_权限检测())
global.Q快验.C初始化配置(string(utils.B编码_BASE64解码("eyJBcHBXZWIiOiJodHRwOi8va3lhcGkuOXc5OS5jbi9BcGk/QXBwSWQ9MTAwMDEiLCJDcnlwdG9LZXlQdWJsaWMiOiItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDM0hib1NYQ0trcUdWaDBsaEt6cFNwaDFYRVxuNUtNYnBtYUhBTzIyNzdnOGtZaVVRRk5XU21PNlZ0RjJlcENKTURleTJjSVZEMk9OUnFZSkxLeWdYbHpkSGtZNlxuQU1Oa3AweTh5elVMQUlUSkgyOTkwbzJTb3VPdzdYQlBPNTN0Nk9URVJSTG92Lzh5YTVMNXJaK1NzM2R4RHNJVFxudkZqd0drYzZ5QlBBVFJKM1N3SURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIsIkNyeXB0b1R5cGUiOjN9")))
ret, err := req.C().EnableInsecureSkipVerify().R().Get(string(utils.B编码_BASE64解码("aHR0cHM6Ly9hcGl3Zy45dzk5LmNu")))
if err == nil && ret.GetHeader("X-Ca-Error-Code") != "" {
//需要放在这里,不然无法执行 //初始化取token,放中间件内了,可以自验证
global.Q快验.SetAppWeb(string(utils.B编码_BASE64解码("aHR0cHM6Ly9hcGl3Zy45dzk5LmNu")))
}
if global.GVA_DB != nil {
go func() { //启动web后,在协程内获取token,也可以解决自验证的问题,
time.Sleep(5 * time.Second) //延迟5秒在在获取Token, 中间件获取可能导致,进入个人中心,获取验证码列表,可能因为速度太快还没获取token,报错验签失败,或加解密失败
middleware.D读取缓存Token()
if global.GVA_Viper.GetInt("duid") > 0 {
global.Q快验.Z置代理标志(global.GVA_Viper.GetInt("duid"))
}
}()
}
KuaiYanUpdater.B宝塔_修改项目信息pid()
err = global.GVA_Gin.ListenAndServe() //执行到此处会暂停,直到系统退出
if err != nil {
global.GVA_LOG.Error(err.Error())
}
//global.GVA_Gin.Shutdown() 这句话可以停止侦听关闭端口
time.Sleep(10 * time.Second) //延迟10秒在关闭主程序,因为可能是关闭了gin 后面还要输出日志重启
fmt.Println("主线程等待10秒后自然关闭,")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。