From 6a7082ad65388d5ecd3f2952904cd08dbeffbebb Mon Sep 17 00:00:00 2001 From: root <295172551@qq.com> Date: Mon, 23 Jun 2025 23:26:43 +0800 Subject: [PATCH] 111 --- LTEMvcApp/Services/LTEClientWebSocket.cs | 34 +++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/LTEMvcApp/Services/LTEClientWebSocket.cs b/LTEMvcApp/Services/LTEClientWebSocket.cs index 82843de..bba6053 100644 --- a/LTEMvcApp/Services/LTEClientWebSocket.cs +++ b/LTEMvcApp/Services/LTEClientWebSocket.cs @@ -148,8 +148,9 @@ namespace LTEMvcApp.Services _messageFifo = new ConcurrentQueue(); _cancellationTokenSource = new CancellationTokenSource(); _messageId = 0; + _logGetId = -1; // 初始化为-1,表示未开始 _logger = logger; - _logger.LogInformation($"创建WebSocket客户端: {config.Name}"); + _logger.LogInformation($"创建WebSocket客户端: {config.Name}, 初始LogGet ID: {_logGetId}"); } #endregion @@ -196,9 +197,12 @@ namespace LTEMvcApp.Services /// public void Stop() { + var oldLogGetId = _logGetId; SetState(ClientState.Stop); StopTimers(); _isSocketReady = false; // 重置连接状态标志 + _logGetId = -1; // 重置LogGet ID + _logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); } /// @@ -327,6 +331,13 @@ namespace LTEMvcApp.Services var id = ++_messageId; message["message_id"] = id; + // 记录log_get消息的发送 + var messageType = message["message"]?.ToString(); + if (messageType == "log_get") + { + _logger.LogDebug($"[{_config.Name}] 发送log_get消息: message_id={id}, timeout={message["timeout"]}, headers={message["headers"]}"); + } + if (callback != null) { _messageHandlers[id] = new MessageHandler @@ -399,7 +410,9 @@ namespace LTEMvcApp.Services } } + var oldLogGetId = _logGetId; _logGetId = SendMessage(message, LogGetParse); + _logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {_logGetId}, 参数: {JsonConvert.SerializeObject(parameters)}"); } /// @@ -427,6 +440,15 @@ namespace LTEMvcApp.Services return _statsPollDelay; } + /// + /// 获取当前LogGet ID + /// + /// 当前LogGet ID + public int GetCurrentLogGetId() + { + return _logGetId; + } + #endregion #region 私有方法 @@ -455,6 +477,11 @@ namespace LTEMvcApp.Services // 重置连接状态标志 _isSocketReady = false; + + // 重置LogGet ID + var oldLogGetId = _logGetId; + _logGetId = -1; + _logger.LogDebug($"[{_config.Name}] 连接关闭,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); if (State == ClientState.Connected) { @@ -822,8 +849,13 @@ namespace LTEMvcApp.Services // 更新日志获取 - 只有在最后一个请求时才更新 if (msg["message_id"]?.Value() == _logGetId) { + _logger.LogDebug($"[{_config.Name}] 收到最后一个LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 继续获取日志"); LogGet(); } + else + { + _logger.LogDebug($"[{_config.Name}] 收到LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 不是最后一个请求"); + } } ///