2017-03-09 70 views
0

我有一個從SignalR Hub類繼承的類,並且覆蓋了OnConnected Task。當一個客戶端連接時,OnConnected被觸發,但我想用EventHandler將其提升到Processor類。不幸的是,EventHanlder始終爲空。有什麼想法嗎?EventHandler在覆蓋範圍內始終爲null SignalR OnConnected方法

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 
    } 
} 
+0

集線器似乎是由SignalR管道進行管理和是暫時的當前請求。有關更多信息,請參閱https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-server。你會打開一個單身人士在集線器和處理器之間搭橋嗎? – StfBln

+0

您需要閱讀[mcve],然後向我們提供一個。 – Enigmativity

+0

沒有進一步的要求,國際海事組織。儘管感謝您的意見。 – philorube

回答

0

你的代碼對我來說很合適。當你調試時,處理程序在這一行中是否有效? Hub.ClientConnected + = Hub_ClientConnected;

如果你有一個以上的LoadBalancerHub對象,並觸發OnConnected()是未簽約一個...