【发布时间】:2017-03-10 07:36:34
【问题描述】:
我有一个继承自 SignalR Hub 类的类,并且正在覆盖 OnConnected 任务。当客户端连接时, OnConnected 被触发,但我想使用 EventHandler 将其冒泡到处理器类。不幸的是,EventHanlder 始终为空。有什么想法吗?
public class LoadBalancerHub : Hub
{
public event EventHandler ClientConnected;
public LoadBalancerHub() : base()
{
}
public override Task OnConnected()
{
ClientConnected?.Invoke(this, EventArgs.Empty);
return base.OnConnected();
}
}
public class Processor
{
public LoadBalancerHub Hub;
public Processor()
{
Hub = new LoadBalancerHub();
Hub.ClientConnected += Hub_ClientConnected;
}
private void Hub_ClientConnected(object sender, EventArgs e)
{
//do stuff here when event raised
}
}
【问题讨论】:
-
集线器似乎由 SignalR 管道管理,并且对于当前请求是瞬态的。请参阅docs.microsoft.com/en-us/aspnet/signalr/overview/… 了解更多信息。你愿意让一个单例在集线器和处理器之间架起桥梁吗?
-
您需要阅读minimal reproducible example,然后提供给我们一份。
-
IMO 无需进一步说明。不过,感谢您的输入。
-
@StfBln 这绝对是这里的问题。谢谢!写完后我会更新我的解决方案。