mirror of
https://github.com/cedar2025/hysteria.git
synced 2025-06-12 23:49:55 +00:00
优化v2board 用户验证性能
This commit is contained in:
parent
47f354927c
commit
9e700e28e1
@ -21,8 +21,8 @@ type V2boardApiProvider struct {
|
|||||||
|
|
||||||
// 用户列表
|
// 用户列表
|
||||||
var (
|
var (
|
||||||
users []User
|
usersMap map[string]User
|
||||||
lock sync.Mutex
|
lock sync.Mutex
|
||||||
)
|
)
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
@ -52,7 +52,7 @@ func getUserList(url string) ([]User, error) {
|
|||||||
|
|
||||||
func UpdateUsers(url string, interval time.Duration) {
|
func UpdateUsers(url string, interval time.Duration) {
|
||||||
|
|
||||||
fmt.Println("定时更新用户列表进程已开启")
|
fmt.Println("用户列表自动更新服务已激活")
|
||||||
|
|
||||||
ticker := time.NewTicker(interval)
|
ticker := time.NewTicker(interval)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
@ -66,7 +66,10 @@ func UpdateUsers(url string, interval time.Duration) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
lock.Lock()
|
lock.Lock()
|
||||||
users = userList
|
usersMap = make(map[string]User)
|
||||||
|
for _, user := range userList {
|
||||||
|
usersMap[user.UUID] = user
|
||||||
|
}
|
||||||
lock.Unlock()
|
lock.Unlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -79,10 +82,8 @@ func (v *V2boardApiProvider) Authenticate(addr net.Addr, auth string, tx uint64)
|
|||||||
lock.Lock()
|
lock.Lock()
|
||||||
defer lock.Unlock()
|
defer lock.Unlock()
|
||||||
|
|
||||||
for _, s := range users {
|
if user, exists := usersMap[auth]; exists {
|
||||||
if s.UUID == string(auth) {
|
return true, strconv.Itoa(user.ID)
|
||||||
return true, strconv.Itoa(s.ID)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false, ""
|
return false, ""
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ type TrafficPushRequest struct {
|
|||||||
|
|
||||||
// 定时提交用户流量情况
|
// 定时提交用户流量情况
|
||||||
func (s *trafficStatsServerImpl) PushTrafficToV2boardInterval(url string, interval time.Duration) {
|
func (s *trafficStatsServerImpl) PushTrafficToV2boardInterval(url string, interval time.Duration) {
|
||||||
fmt.Println("提交用户流量情况进程已开启")
|
fmt.Println("用户流量情况监控已启动")
|
||||||
|
|
||||||
ticker := time.NewTicker(interval)
|
ticker := time.NewTicker(interval)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
@ -46,7 +46,7 @@ func (s *trafficStatsServerImpl) PushTrafficToV2boardInterval(url string, interv
|
|||||||
select {
|
select {
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
if err := s.PushTrafficToV2board(url); err != nil {
|
if err := s.PushTrafficToV2board(url); err != nil {
|
||||||
fmt.Println("提交用户流量情况失败:", err)
|
fmt.Println("用户流量信息提交失败:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user