using System.Net;
using System.Net.Http;
using YY.Admin.Helper;
namespace YY.Admin.Infrastructure.Network;
///
/// 全局断开保护:用户勾选"断开连接"时,直接短路所有后端 HTTP 请求,
/// 返回 499 而不发起真实网络调用,各服务的 catch/IsSuccessStatusCode 分支自行降级。
///
internal sealed class DisconnectGuardHandler : DelegatingHandler
{
protected override Task SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
if (ServerSettingsStore.Load().DisconnectConnection)
{
return Task.FromResult(new HttpResponseMessage((HttpStatusCode)499)
{
ReasonPhrase = "User Disconnected"
});
}
return base.SendAsync(request, cancellationToken);
}
}