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> /// </summary>
public void Stop() public void Stop()
{ {
var oldLogGetId = _logGetId; var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1);
SetState(ClientState.Stop); SetState(ClientState.Stop);
StopTimers(); StopTimers();
_isSocketReady = false; // 重置连接状态标志 _isSocketReady = false; // 重置连接状态标志
_logGetId = -1; // 重置LogGet ID
_logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); _logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}");
} }
@ -410,9 +409,10 @@ namespace LTEMvcApp.Services
} }
} }
var oldLogGetId = _logGetId; var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1); // 临时设置为-1,防止重复
_logGetId = SendMessage(message, LogGetParse); var newLogGetId = SendMessage(message, LogGetParse);
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {_logGetId}, 参数: {JsonConvert.SerializeObject(parameters)}"); Interlocked.Exchange(ref _logGetId, newLogGetId); // 设置新的LogGet ID
_logger.LogDebug($"[{_config.Name}] LogGet ID变化: {oldLogGetId} -> {newLogGetId}, 参数: {JsonConvert.SerializeObject(parameters)}");
} }
/// <summary> /// <summary>
@ -446,7 +446,7 @@ namespace LTEMvcApp.Services
/// <returns>当前LogGet ID</returns> /// <returns>当前LogGet ID</returns>
public int GetCurrentLogGetId() public int GetCurrentLogGetId()
{ {
return _logGetId; return Interlocked.CompareExchange(ref _logGetId, -1, -1);
} }
#endregion #endregion
@ -479,8 +479,7 @@ namespace LTEMvcApp.Services
_isSocketReady = false; _isSocketReady = false;
// 重置LogGet ID // 重置LogGet ID
var oldLogGetId = _logGetId; var oldLogGetId = Interlocked.Exchange(ref _logGetId, -1);
_logGetId = -1;
_logger.LogDebug($"[{_config.Name}] 连接关闭,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); _logger.LogDebug($"[{_config.Name}] 连接关闭,LogGet ID重置: {oldLogGetId} -> {_logGetId}");
if (State == ClientState.Connected) 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(); LogGet();
} }
else 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