diff --git a/internal/msggateway/client.go b/internal/msggateway/client.go index b32130c9a1..9eeac38356 100644 --- a/internal/msggateway/client.go +++ b/internal/msggateway/client.go @@ -297,7 +297,9 @@ func (c *Client) KickOnlineMessage() error { resp := Resp{ ReqIdentifier: WSKickOnlineMsg, } - return c.writeBinaryMsg(resp) + err := c.writeBinaryMsg(resp) + c.close() + return err } func (c *Client) writeBinaryMsg(resp Resp) error { diff --git a/internal/msggateway/n_ws_server.go b/internal/msggateway/n_ws_server.go index ad56c1373b..c58710e1bc 100644 --- a/internal/msggateway/n_ws_server.go +++ b/internal/msggateway/n_ws_server.go @@ -225,12 +225,7 @@ func (ws *WsServer) registerClient(client *Client) { ws.onlineUserNum.Add(1) ws.onlineUserConnNum.Add(1) } else { - i := &kickHandler{ - clientOK: clientOK, - oldClients: oldClients, - newClient: client, - } - ws.kickHandlerChan <- i + ws.multiTerminalLoginChecker(clientOK, oldClients, client) log.ZDebug(client.ctx, "user exist", "userID", client.UserID, "platformID", client.PlatformID) if clientOK { ws.clients.Set(client.UserID, client)