From 073e743060aef73c3bda47b481f30317c3c1faea Mon Sep 17 00:00:00 2001 From: wangbin Date: Fri, 20 Jun 2025 09:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0IsConnect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FlxNetworkCmdSender.go | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Device/FLXNetworkController/FlxNetworkCmdSender.go b/Device/FLXNetworkController/FlxNetworkCmdSender.go index 9fadb01..baf8c8b 100644 --- a/Device/FLXNetworkController/FlxNetworkCmdSender.go +++ b/Device/FLXNetworkController/FlxNetworkCmdSender.go @@ -148,6 +148,7 @@ func NewTcpServer() *TCPServer { var CTcpServer *TCPServer var AsClicent *tao.ClientConn var reconnectInterval = 5 * time.Second +var IsConnect bool = false //是否连接服务器 func ConnectToServer() { defer func() { @@ -186,15 +187,18 @@ func ConnectToServer() { onError := tao.OnErrorOption(func(c tao.WriteCloser) { holmes.Infoln("on error") + IsConnect = false }) onClose := tao.OnCloseOption(func(c tao.WriteCloser) { holmes.Infoln("连接关闭,尝试重连...") + IsConnect = false go ConnectToServer() // 异步触发重连 }) onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) { Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] + IsConnect = true fmt.Println(msg.(CustomMessage).Content, Remote_IP) }) @@ -320,23 +324,31 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) { // fmt.Println("tcp发送失败", err.Error()) // } // fmt.Println(dataMsg) + if IsConnect { + SendLock.Lock() - // SendLock.Lock() + // 伪代码示例:需确保遍历所有连接 - // 伪代码示例:需确保遍历所有连接 + msg := CustomMessage{Content: dataMsg} + // CTcpServer.Broadcast(msg) - msg := CustomMessage{Content: dataMsg} - // CTcpServer.Broadcast(msg) + error := AsClicent.Write(msg) + if error != nil { + if !Common.Contain(UnSendToServerData, msg) { + UnSendToServerData = append(UnSendToServerData, msg) + } + log.Error("SendToServer发送卡号失败:", msg) + } - error := AsClicent.Write(msg) - if error != nil { + SendLock.Unlock() + } else { + msg := CustomMessage{Content: dataMsg} if !Common.Contain(UnSendToServerData, msg) { UnSendToServerData = append(UnSendToServerData, msg) } log.Error("SendToServer发送卡号失败:", msg) } - // SendLock.Unlock() } else { fmt.Printf("服务器没有连接!")