diff --git a/internal/msggateway/n_ws_server.go b/internal/msggateway/n_ws_server.go index 64d6b6b72..ed3df9e6d 100644 --- a/internal/msggateway/n_ws_server.go +++ b/internal/msggateway/n_ws_server.go @@ -279,7 +279,10 @@ func (ws *WsServer) multiTerminalLoginChecker(clientOK bool, oldClients []*Clien fallthrough case constant.AllLoginButSameTermKick: if clientOK { - ws.clients.deleteClients(newClient.UserID, oldClients) + isDeleteUser := ws.clients.deleteClients(newClient.UserID, oldClients) + if isDeleteUser { + atomic.AddInt64(&ws.onlineUserNum, -1) + } for _, c := range oldClients { err := c.KickOnlineMessage() if err != nil {