diff --git a/CoreAgent.WebSocketTransport/Services/WebSocketTransport.cs b/CoreAgent.WebSocketTransport/Services/WebSocketTransport.cs index eb498c2..e33eff3 100644 --- a/CoreAgent.WebSocketTransport/Services/WebSocketTransport.cs +++ b/CoreAgent.WebSocketTransport/Services/WebSocketTransport.cs @@ -286,8 +286,20 @@ public class WebSocketTransport : IWebSocketTransport { if (_isConnected && _connection.IsConnected) { - _channelManager.PriorityChannel.TryWrite(new HeartbeatMessage()); - UpdateHeartbeat(); + // 检查发送通道是否有待发送的消息 + var hasPendingMessages = _channelManager.SendChannel.Count > 0; + + if (!hasPendingMessages) + { + _channelManager.PriorityChannel.TryWrite(new HeartbeatMessage()); + UpdateHeartbeat(); + _logger.LogTrace("发送心跳消息"); + } + else + { + _logger.LogTrace("有待发送消息 ({MessageCount} 条),跳过心跳发送", + _channelManager.SendChannel.Count); + } } await Task.Delay(TimeSpan.FromSeconds(120), cancellationToken); }