Browse Source

111

feature/LteClientLogFun
root 1 month ago
parent
commit
d9ae46fbdd
  1. 22
      LTEMvcApp/Services/LTEClientWebSocket.cs

22
LTEMvcApp/Services/LTEClientWebSocket.cs

@ -197,11 +197,10 @@ namespace LTEMvcApp.Services
/// </summary>
public void Stop()
{
var oldLogGetId = _logGetId;
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1);
SetState(ClientState.Stop);
StopTimers();
_isSocketReady = false; // 重置连接状态标志
_logGetId = -1; // 重置LogGet ID
_logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}");
}
@ -410,9 +409,10 @@ namespace LTEMvcApp.Services
}
}
var oldLogGetId = _logGetId;
_logGetId = SendMessage(message, LogGetParse);
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {_logGetId}, 参数: {JsonConvert.SerializeObject(parameters)}");
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1); // 临时设置为-1,防止重复
var newLogGetId = SendMessage(message, LogGetParse);
Interlocked.Exchange(ref _logGetId, newLogGetId); // 设置新的LogGet ID
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {newLogGetId}, 参数: {JsonConvert.SerializeObject(parameters)}");
}
/// <summary>
@ -446,7 +446,7 @@ namespace LTEMvcApp.Services
/// <returns>当前LogGet ID</returns>
public int GetCurrentLogGetId()
{
return _logGetId;
return Interlocked.CompareExchange(ref _logGetId, -1, -1);
}
#endregion
@ -479,8 +479,7 @@ namespace LTEMvcApp.Services
_isSocketReady = false;
// 重置LogGet ID
var oldLogGetId = _logGetId;
_logGetId = -1;
var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1);
_logger.LogDebug($"[{_config.Name}] 连接关闭,LogGet ID重置: {oldLogGetId} -> {_logGetId}");
if (State == ClientState.Connected)
@ -847,14 +846,15 @@ namespace LTEMvcApp.Services
}
// 更新日志获取 - 只有在最后一个请求时才更新
if (msg["message_id"]?.Value<int>() == _logGetId)
var currentLogGetId = Interlocked.CompareExchange(ref _logGetId, -1, -1);
if (msg["message_id"]?.Value<int>() == currentLogGetId)
{
_logger.LogDebug($"[{_config.Name}] 收到最后一个LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 继续获取日志");
_logger.LogDebug($"[{_config.Name}] 收到最后一个LogGet响应: message_id={msg["message_id"]}, _logGetId={currentLogGetId}, 继续获取日志");
LogGet();
}
else
{
_logger.LogDebug($"[{_config.Name}] 收到LogGet响应: message_id={msg["message_id"]}, _logGetId={_logGetId}, 不是最后一个请求");
_logger.LogDebug($"[{_config.Name}] 收到LogGet响应: message_id={msg["message_id"]}, _logGetId={currentLogGetId}, 不是最后一个请求");
}
}

Loading…
Cancel
Save