diff --git a/internal/msggateway/n_ws_server.go b/internal/msggateway/n_ws_server.go index 69fa37680..d90ab8ec8 100644 --- a/internal/msggateway/n_ws_server.go +++ b/internal/msggateway/n_ws_server.go @@ -124,11 +124,13 @@ func (ws *WsServer) registerClient(client *Client) { ) cli, userOK, clientOK = ws.clients.Get(client.userID, client.platformID) if !userOK { + log.ZDebug(client.ctx, "user not exist", "userID", client.userID, "platformID", client.platformID) ws.clients.Set(client.userID, client) atomic.AddInt64(&ws.onlineUserNum, 1) atomic.AddInt64(&ws.onlineUserConnNum, 1) } else { + log.ZDebug(client.ctx, "user exist", "userID", client.userID, "platformID", client.platformID) if clientOK { //已经有同平台的连接存在 ws.clients.Set(client.userID, client) ws.multiTerminalLoginChecker(cli) diff --git a/internal/msggateway/user_map.go b/internal/msggateway/user_map.go index 87699b915..9f14bb3de 100644 --- a/internal/msggateway/user_map.go +++ b/internal/msggateway/user_map.go @@ -1,6 +1,10 @@ package msggateway -import "sync" +import ( + "context" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" + "sync" +) type UserMap struct { m sync.Map @@ -36,10 +40,12 @@ func (u *UserMap) Get(key string, platformID int) ([]*Client, bool, bool) { func (u *UserMap) Set(key string, v *Client) { allClients, existed := u.m.Load(key) if existed { + log.ZDebug(context.Background(), "Set existed", "user_id", key, "client", v) oldClients := allClients.([]*Client) oldClients = append(oldClients, v) u.m.Store(key, oldClients) } else { + log.ZDebug(context.Background(), "Set not existed", "user_id", key, "client", v) var clients []*Client clients = append(clients, v) u.m.Store(key, clients)