当用户长时间处于非活动状态时,我想从服务器端关闭电路。必须终止连接才能保存Azure SignalR资源。
我创建了一个js脚本,一个简单的计时器,用于跟踪onmousemove和onkeypress事件,并在时间到期时调用C#方法。
function CloseCircuit()
{
dotNetHelper.invokeMethodAsync('CloseCircuit');
}
我已经阅读了CircuitHandler实现,但我不需要处理关闭或打开连接的事件。我必须以某种方式从我的BlazorServer应用程序启动关闭此连接。如果有任何建议,我将不胜感激
如果您使用SignalR Core,则可以使用Context。Abort((可通过Hub类获得。E.G:
public class MyHub : Hub
{
public void CloseCircuit()
{
// This will close the connection of the caller
Context.Abort();
}
}
如果你没有使用SignalR核心,我相信还没有办法做到这一点。在这种情况下,为什么不从客户端停止连接,因为你已经在那里进行计时器了?