diff options
| author | 1992414357@qq.com <1992414357@qq.com> | 2025-06-09 10:29:36 +0800 |
|---|---|---|
| committer | 1992414357@qq.com <1992414357@qq.com> | 2025-06-09 10:29:36 +0800 |
| commit | 44d61a897519e4f180d981d2c0846b9f59ef55c8 (patch) | |
| tree | 20ef2fd0edfeb563ae026a47d2be2a348733f6b0 | |
| parent | c8ece4c62b6f8b5165de4d9d38a467bbc1e94a53 (diff) | |
解决了长连接的不中断bug
| -rw-r--r-- | core/src/service/tcp_network/long_connection.rs | 12 |
1 files 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 { |
