From 284e89d4108bc2c2bfe349fd49a0f61405658d7a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Feb 2023 12:14:58 +0800 Subject: [PATCH 1/2] websocket update --- internal/msg_gateway/gate/ws_server.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 2e1a33fe5..7323c3fc2 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) From 661b1a5e6a4f668d5a2fc556ae639ccab5b07dc8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Feb 2023 14:21:39 +0800 Subject: [PATCH 2/2] not kick user --- internal/msg_gateway/gate/ws_server.go | 2 ++ pkg/common/constant/constant.go | 1 + 2 files changed, 3 insertions(+) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 7323c3fc2..81ce37d76 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -195,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 @@ -250,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