diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 2e1a33fe5..81ce37d76 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -106,6 +106,12 @@ func (ws *WServer) readMsg(conn *UserConn) { ws.delUserConn(conn) return } + if messageType == websocket.CloseMessage { + log.NewWarn("", "WS receive error ", " userIP", conn.RemoteAddr().String(), "userUid", "platform", "error", string(msg)) + userCount-- + ws.delUserConn(conn) + return + } log.NewDebug("", "size", utils.ByteSize(uint64(len(msg)))) if conn.IsCompress { buff := bytes.NewBuffer(msg) @@ -189,6 +195,7 @@ func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, defer rwLock.Unlock() log.NewInfo(operationID, utils.GetSelfFuncName(), " rpc args: ", uid, platformID, token) switch config.Config.MultiLoginPolicy { + case constant.DefalutNotKick: case constant.PCAndOther: if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == constant.TerminalPC { return @@ -244,6 +251,7 @@ func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn *UserConn, token string, operationID string) { switch config.Config.MultiLoginPolicy { + case constant.DefalutNotKick: case constant.PCAndOther: if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == constant.TerminalPC { return diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 62cf8339c..c189cf709 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -140,6 +140,7 @@ const ( ExpiredToken = 3 //MultiTerminalLogin + DefalutNotKick = 0 //Full-end login, but the same end is mutually exclusive AllLoginButSameTermKick = 1 //Only one of the endpoints can log in