From 0363bce11063224027d2711d314d0b7426b1f16f Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 22:54:15 +0800 Subject: [PATCH] add send msg timeout --- internal/msg_gateway/gate/ws_server.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index e6f3a317e..ed503bdc5 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -87,12 +87,18 @@ func (ws *WServer) readMsg(conn *UserConn) { } } + +func (ws *WServer) SetWriteTimeout(conn *UserConn, timeout int) { + conn.SetWriteDeadline(time.Now().Add(time.Duration(timeout) * time.Second)) +} + func (ws *WServer) writeMsg(conn *UserConn, a int, msg []byte) error { conn.w.Lock() defer conn.w.Unlock() + ws.SetWriteTimeout(conn, 5) return conn.WriteMessage(a, msg) - } + func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newConn *UserConn, token string, operationID string) { switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: @@ -100,6 +106,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo if oldConn, ok := oldConnMap[constant.PlatformIDToName(platformID)]; ok { log.NewDebug(operationID, uid, platformID, "kick old conn") ws.sendKickMsg(oldConn, newConn) + log.NewDebug(operationID, uid, platformID, "kick old conn") m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) if err != nil && err != redis.ErrNil { log.NewError(operationID, "get token from redis err", err.Error())