|
|
|
@ -3,16 +3,14 @@ package configure |
|
|
|
import ( |
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"fmt" |
|
|
|
"log" |
|
|
|
"log" |
|
|
|
"math/rand" |
|
|
|
|
|
|
|
|
|
|
|
"livego/utils/uid" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/go-redis/redis/v7" |
|
|
|
"github.com/go-redis/redis/v7" |
|
|
|
"github.com/patrickmn/go-cache" |
|
|
|
"github.com/patrickmn/go-cache" |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
var RoomKeys *RoomKeysType |
|
|
|
var RoomKeys *RoomKeysType |
|
|
|
|
|
|
|
|
|
|
|
var roomUpdated = false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var saveInLocal = true |
|
|
|
var saveInLocal = true |
|
|
|
|
|
|
|
|
|
|
|
type RoomKeysType struct { |
|
|
|
type RoomKeysType struct { |
|
|
|
@ -49,7 +47,7 @@ func Init() { |
|
|
|
func (r *RoomKeysType) SetKey(channel string) (key string, err error) { |
|
|
|
func (r *RoomKeysType) SetKey(channel string) (key string, err error) { |
|
|
|
if !saveInLocal { |
|
|
|
if !saveInLocal { |
|
|
|
for { |
|
|
|
for { |
|
|
|
key = randStringRunes(48) |
|
|
|
key = uid.RandStringRunes(48) |
|
|
|
if _, err = r.redisCli.Get(key).Result(); err == redis.Nil { |
|
|
|
if _, err = r.redisCli.Get(key).Result(); err == redis.Nil { |
|
|
|
err = r.redisCli.Set(channel, key, 0).Err() |
|
|
|
err = r.redisCli.Set(channel, key, 0).Err() |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
@ -65,14 +63,13 @@ func (r *RoomKeysType) SetKey(channel string) (key string, err error) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for { |
|
|
|
for { |
|
|
|
key = randStringRunes(48) |
|
|
|
key = uid.RandStringRunes(48) |
|
|
|
if _, found := r.localCache.Get(key); !found { |
|
|
|
if _, found := r.localCache.Get(key); !found { |
|
|
|
r.localCache.SetDefault(channel, key) |
|
|
|
r.localCache.SetDefault(channel, key) |
|
|
|
r.localCache.SetDefault(key, channel) |
|
|
|
r.localCache.SetDefault(key, channel) |
|
|
|
break |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
roomUpdated = true |
|
|
|
|
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -137,14 +134,3 @@ func (r *RoomKeysType) DeleteKey(key string) bool { |
|
|
|
} |
|
|
|
} |
|
|
|
return false |
|
|
|
return false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// helpers
|
|
|
|
|
|
|
|
var letterRunes = []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func randStringRunes(n int) string { |
|
|
|
|
|
|
|
b := make([]rune, n) |
|
|
|
|
|
|
|
for i := range b { |
|
|
|
|
|
|
|
b[i] = letterRunes[rand.Intn(len(letterRunes))] |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return string(b) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|