gpt4 book ai didi

c# - SignalR - 检查用户是否仍然连接

转载 作者:可可西里 更新时间:2023-11-01 08:53:22 26 4
gpt4 key购买 nike

我有一个集线器,其方法称为客户端。此方法使用每 10 秒运行一次的委托(delegate)启动计时器。如果没有人连接到集线器,则继续运行此委托(delegate)是没有意义的,因此我想在重新安排它之前检查是否仍有用户从委托(delegate)内部连接。有什么办法吗?

最佳答案

可能最常用的解决方案是保留一个静态变量,其中包含当前连接的用户并覆盖 OnConnectOnDisconnect 或实现 IDisconnect您使用的版本。

你会实现这样的东西:

public class MyHub : Hub
{
private static List<string> users = new List<string>();
public override Task OnConnected()
{
users.Add(Context.ConnectionId);
return base.OnConnected();
}

//SignalR Verions 1 Signature
public override Task OnDisconnected()
{
users.Remove(Context.ConnectionId);
return base.OnDisconnected();
}

//SignalR Version 2 Signature
public override Task OnDisconnected(bool stopCalled)
{
users.Remove(Context.ConnectionId);
return base.OnDisconnected(stopCalled);
}

// In your delegate check the count of users in your list.
}

关于c# - SignalR - 检查用户是否仍然连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com