fix: platform client conn delete

test-errcode
Gordon 1 year ago
parent b5e16aeb2c
commit f75fabd664

@ -161,7 +161,7 @@ func (ws *WsServer) multiTerminalLoginChecker(client []*Client) {
}
func (ws *WsServer) unregisterClient(client *Client) {
defer ws.clientPool.Put(client)
isDeleteUser := ws.clients.delete(client.userID, client.platformID)
isDeleteUser := ws.clients.delete(client.userID, client.ctx.GetRemoteAddr())
if isDeleteUser {
atomic.AddInt64(&ws.onlineUserNum, -1)
}

@ -51,13 +51,13 @@ func (u *UserMap) Set(key string, v *Client) {
u.m.Store(key, clients)
}
}
func (u *UserMap) delete(key string, platformID int) (isDeleteUser bool) {
func (u *UserMap) delete(key string, connRemoteAddr string) (isDeleteUser bool) {
allClients, existed := u.m.Load(key)
if existed {
oldClients := allClients.([]*Client)
var a []*Client
for _, client := range oldClients {
if client.platformID != platformID {
if client.ctx.GetRemoteAddr() != connRemoteAddr {
a = append(a, client)
}
}

Loading…
Cancel
Save