我希望使用SignalR Core,客户端每4小时重新进行一次身份验证。我如何中止4个小时后仍打开的服务器端连接?
我尝试过的事情:
// Inside my Hub
public override Task OnConnectedAsync()
{
Task.Delay(TimeSpan.FromHours(4)).ContinueWith(_ => Context.Abort());
}
不幸的是,这不起作用,因为一旦建立连接,就将处置Context。
答案 0 :(得分:1)
这不是您要委派给身份验证提供程序的内容吗?还是您有自己的身份管理系统?
尝试访问简单的资源(快速-运行状况检查-心跳,无论您想为其命名)。如果身份验证已过期,您将收到一个错误(很可能是440、401甚至403之类的错误),然后客户端会知道需要(重新)身份验证-您必须将其挂接到那里。 / p>
然后,SignalR的异步特性可能会为此感到困扰;还是有现成的模式/解决方案-也许这是您的问题?