From 82b3bad6a04fa5437690050d92b3fb89a6c261fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 6 Mar 2023 11:08:58 +0800 Subject: [PATCH] 1 --- business/jxstore/event/event_tcp.go | 18 ++++++++++++------ business/jxstore/event/event_tcp_utils.go | 12 ++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index b26f10bf0..2e8122833 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -3,6 +3,7 @@ package event import ( "encoding/hex" "encoding/json" + "errors" "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" @@ -30,14 +31,19 @@ func ListenTcp() { fmt.Println("accept error:", err) break } - go t.handleConn(c) + go func() { + if err := t.handleConn(c); err != nil { + t = nil + return + } + }() } } -func (t *TcpClient) handleConn(c net.Conn) { +func (t *TcpClient) handleConn(c net.Conn) error { if c == nil { globals.SugarLogger.Debugf("conn is nil") - return + return errors.New("conn is nil") } defer c.Close() for { @@ -52,7 +58,7 @@ func (t *TcpClient) handleConn(c net.Conn) { } else { fmt.Println("ReadString err", err) } - return + return err } //看是心跳还是打印回调 @@ -63,11 +69,11 @@ func (t *TcpClient) handleConn(c net.Conn) { }{} if err := json.Unmarshal(buffer[0:n], ¶m); err != nil { c.Write([]byte(err.Error())) - return + return err } t.buildMsgMap(param.PrintNoClear.String()) c.Write([]byte("ok")) - return + return err } //证明是心跳 if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { diff --git a/business/jxstore/event/event_tcp_utils.go b/business/jxstore/event/event_tcp_utils.go index f67b24f91..1638ae366 100644 --- a/business/jxstore/event/event_tcp_utils.go +++ b/business/jxstore/event/event_tcp_utils.go @@ -318,12 +318,12 @@ func (t *TcpClient) GetCallbackChan(key string) string { func (t *TcpClient) clear(key string) { t.Lock() defer t.Unlock() - //t.Clients[key].C.Close() - //delete(t.Clients, key) - //close(t.MsgMap[key]) - //delete(t.MsgMap, key) - //close(t.CallBackMap[key]) - //delete(t.CallBackMap, key) + t.Clients[key].C.Close() + delete(t.Clients, key) + close(t.MsgMap[key]) + delete(t.MsgMap, key) + close(t.CallBackMap[key]) + delete(t.CallBackMap, key) delete(t.TimeoutMap, key) }