From 44d61a897519e4f180d981d2c0846b9f59ef55c8 Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Mon, 9 Jun 2025 10:29:36 +0800 Subject: 解决了长连接的不中断bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/service/tcp_network/long_connection.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/service/tcp_network/long_connection.rs b/core/src/service/tcp_network/long_connection.rs index ada9751..a08fc6d 100644 --- a/core/src/service/tcp_network/long_connection.rs +++ b/core/src/service/tcp_network/long_connection.rs @@ -181,7 +181,8 @@ impl PadClientNetwork { LetExit(reason) => { info!("[TCP Client] [Runtime] Server let you exit: {:?}", reason); entry_mutex!(self.runtime, |guard| { - guard.send(ControlMessage::End, 0, ServiceType::TCPConnection); + guard.send(ControlMessage::Exit, 0, TCPConnection); + guard.send(ControlMessage::End, 0, TCPConnection); }); break; } @@ -193,7 +194,7 @@ impl PadClientNetwork { } else { warn!("[TCP Client] [Runtime] Too many error messages! Connection closed."); entry_mutex!(self.runtime, |guard| { - guard.send(ControlMessage::End, 0, ServiceType::TCPConnection); + guard.send(ControlMessage::End, 0, TCPConnection); }); break; } @@ -205,7 +206,7 @@ impl PadClientNetwork { // Process messages entry_mutex!(self.runtime, |guard| { trace!("[TCP Client] [Runtime] Received: {:?}", &message); - guard.put_into_receive_list(message, 0, ServiceType::TCPConnection); + guard.put_into_receive_list(message, 0, TCPConnection); }); } Err(err) => { @@ -228,7 +229,8 @@ impl PadClientNetwork { if !closed { entry_mutex!(self.runtime, |guard| { if guard.close.load(SeqCst) { - guard.send(ControlMessage::Exit, 0, ServiceType::TCPConnection); + guard.send(ControlMessage::Exit, 0, TCPConnection); + guard.send(ControlMessage::End, 0, TCPConnection); closed = true; } }); @@ -236,7 +238,7 @@ impl PadClientNetwork { let mut message = None; entry_mutex!(self.runtime, |guard| { - message = guard.pop_from_send_list(0, ServiceType::TCPConnection); + message = guard.pop_from_send_list(0, TCPConnection); }); if let Some(message) = message { -- cgit