fix: 修正 RustDesk UDP 注册状态判定

- 移除无法证明服务器可达的 connected 状态
- 引入注册跟踪器统一管理响应、超时与退避
- 连续注册超时后正确降级为未连接
 - 分离本地服务状态与 HBBS 注册状态
- 补充注册状态机单元测试
This commit is contained in:
mofeng-git
2026-07-30 19:43:28 +08:00
parent 9fb23476ac
commit 8b09824e04
2 changed files with 237 additions and 51 deletions

View File

@@ -276,7 +276,6 @@ impl RustDeskService {
},
));
let status = self.status.clone();
let handle = tokio::spawn(async move {
loop {
match mediator.start().await {
@@ -286,9 +285,7 @@ impl RustDeskService {
}
Err(e) => {
error!("Rendezvous mediator error: {}", e);
*status.write() = ServiceStatus::Error(e.to_string());
tokio::time::sleep(std::time::Duration::from_secs(5)).await;
*status.write() = ServiceStatus::Starting;
}
}
}