feat 修改usn类型为string

This commit is contained in:
2026-01-11 16:16:16 +08:00
parent 5af027b35c
commit 9e1889b956
13 changed files with 34 additions and 36 deletions

View File

@@ -13,7 +13,7 @@ import (
"time"
)
var GatewaySID int64
var GatewaySID string
type Client struct {
sync.WaitGroup
@@ -24,14 +24,14 @@ type Client struct {
cancel context.CancelFunc // 取消上下文
heartBeat time.Time // 最后一次心跳
Status int32 // 状态0 登陆中 1 正常 2 离线
USN int64 // 用户ID
SceneSID int64 // 场景服ID
InstanceID int32 // 副本ID副本类型
UniqueNo int64 // 副本唯一编号
Status int32 // 状态0 登陆中 1 正常 2 离线
USN string // 用户ID
SceneSID string // 场景服ID
InstanceID int32 // 副本ID副本类型
UniqueNo string // 副本唯一编号
}
func NewClient(usn int64, conn socket.ISocketConn) *Client {
func NewClient(usn string, conn socket.ISocketConn) *Client {
client := &Client{
USN: usn,
conn: conn,

View File

@@ -76,7 +76,7 @@ func (c *Client) onEnter(msg *sc_pb.C2S_EnterInstance) {
}
func (c *Client) onLeave() {
if c.SceneSID == 0 {
if c.SceneSID == "" {
return
}
client, err := service.SceneNewClient(c.SceneSID)
@@ -95,7 +95,7 @@ func (c *Client) onLeave() {
}
func (c *Client) onAction(msg *sc_pb.C2S_Action) {
if c.SceneSID == 0 {
if c.SceneSID == "" {
return
}
if err := stream_client.SendMessageToScene(c.SceneSID, stream_client.FunAction, &grpc_pb.ActionReq{

View File

@@ -8,35 +8,35 @@ import (
var UserMgr *userManager
type userManager struct {
userMap map[int64]*Client
userMap map[string]*Client
sync.RWMutex
}
func init() {
UserMgr = &userManager{
userMap: make(map[int64]*Client),
userMap: make(map[string]*Client),
}
}
func (m *userManager) Add(usn int64, client *Client) {
func (m *userManager) Add(usn string, client *Client) {
m.Lock()
defer m.Unlock()
m.userMap[usn] = client
global.OnlineUsersGauge.Inc()
}
func (m *userManager) Delete(usn int64) {
func (m *userManager) Delete(usn string) {
m.Lock()
defer m.Unlock()
delete(m.userMap, usn)
global.OnlineUsersGauge.Dec()
}
func (m *userManager) GetAll() map[int64]*Client {
func (m *userManager) GetAll() map[string]*Client {
m.RLock()
defer m.RUnlock()
copyMap := make(map[int64]*Client, len(m.userMap))
copyMap := make(map[string]*Client, len(m.userMap))
for k, v := range m.userMap {
copyMap[k] = v
}
@@ -54,7 +54,7 @@ func (m *userManager) GetAllInterface() []interface{} {
return r
}
func (m *userManager) GetByUSN(usn int64) *Client {
func (m *userManager) GetByUSN(usn string) *Client {
m.RLock()
defer m.RUnlock()
return m.userMap[usn]

View File

@@ -161,7 +161,7 @@ func (l *Login) CheckOnline(user *User) string {
}
// KickUser 把玩家踢下线
func (l *Login) KickUser(gatewaySID int64, usn int64) bool {
func (l *Login) KickUser(gatewaySID string, usn string) bool {
gc, err := service.GatewayNewClient(gatewaySID)
if err != nil {
log.Errorf("KickUser cannot find gateway client: %v, sid: %v", err, gatewaySID)

View File

@@ -78,7 +78,7 @@ func (q *QueueUp) Dequeue() (*client.Client, error) {
}
// GetPosition 返回用户前面还有多少人在排队
func (q *QueueUp) GetPosition(usn int64) (int64, bool) {
func (q *QueueUp) GetPosition(usn string) (int64, bool) {
val, ok := q.waiting.Load(usn)
if !ok {
return 0, false
@@ -88,7 +88,7 @@ func (q *QueueUp) GetPosition(usn int64) (int64, bool) {
}
// RemoveUser 安全移除用户(标记为取消)
func (q *QueueUp) RemoveUser(usn int64) bool {
func (q *QueueUp) RemoveUser(usn string) bool {
_, loaded := q.waiting.LoadAndDelete(usn)
return loaded
}