检测ASP上的SSE断开连接.净的核心

本文关键字:核心 连接 断开 ASP 上的 SSE 检测 | 更新日期: 2023-09-27 17:54:25

我想检测从ASP上的SSE(服务器发送事件)断开连接。净的核心。旧的Response.IsClientConnected不能工作。你有解决这个问题的办法吗?

检测ASP上的SSE断开连接.净的核心

我找到了解决问题的临时方法。临时的,因为在尝试发送请求并且失败时检测到IsCancellationRequested,而不是在发送请求

之前用户断开连接时
if (HttpContext.RequestAborted.IsCancellationRequested == true)
{
     break;
} 

在。net 2.0核心:

该方法创建一个端点,该端点将在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();
}