我希望能够在ASP.NET Core中检测SSE(服务器发送事件)的断开连接。旧方式Response.IsClientConnected
已经无法使用。您有解决此问题的方法吗?
我希望能够在ASP.NET Core中检测SSE(服务器发送事件)的断开连接。旧方式Response.IsClientConnected
已经无法使用。您有解决此问题的方法吗?
IsCancellationRequested
,而不是在用户断开连接之前发送请求。if (HttpContext.RequestAborted.IsCancellationRequested == true)
{
break;
}
该方法创建一个端点,并在60秒后返回null
。如果在这60秒内请求被取消,方法会立即返回null
。
[HttpGet]
public async Task<string> Get()
{
Request.HttpContext.RequestAborted.WaitHandle.WaitOne(60000);
return null;
}
[HttpGet]
public async Task<Items[]> Get()
{
Item item = null;
List<Items> items = new List<Items>();
do
{
item = DoRepitiousWork();
Items.Add(item);
}
while (!Request.HttpContext.RequestAborted.IsCancellationRequested && !item.IsLast);
return items.ToArray();
}