|
|
@ -148,8 +148,9 @@ namespace LTEMvcApp.Services |
|
|
|
_messageFifo = new ConcurrentQueue<JObject>(); |
|
|
|
_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 |
|
|
|
/// </summary>
|
|
|
|
public void Stop() |
|
|
|
{ |
|
|
|
var oldLogGetId = _logGetId; |
|
|
|
SetState(ClientState.Stop); |
|
|
|
StopTimers(); |
|
|
|
_isSocketReady = false; // 重置连接状态标志
|
|
|
|
_logGetId = -1; // 重置LogGet ID
|
|
|
|
_logger.LogDebug($"[{_config.Name}] 停止连接,LogGet ID重置: {oldLogGetId} -> {_logGetId}"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
@ -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)}"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
@ -427,6 +440,15 @@ namespace LTEMvcApp.Services |
|
|
|
return _statsPollDelay; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取当前LogGet ID
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>当前LogGet ID</returns>
|
|
|
|
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<int>() == _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}, 不是最后一个请求"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|