我們可以爲不同的事情創建多個集線器,並且連接到每個集線器,我們可以創建多個客戶端集線器並共享連接,以便與所有集線器。現在,問題出現了,集線器連接方法沒有在每個集線器服務器端代碼上引發。當我在多個集線器中使用共享連接時,OnConnected方法不被稱爲SignalR
public class Hub1 : Hub
{
public override Task OnConnected()
{
return base.OnConnected();
}
}
public class Hub2 : Hub
{
public override Task OnConnected()
{
return base.OnConnected();
}
}
讓的說,在客戶端我創建了HUB1和HUB2與兩個樞紐定義客戶端方式,那麼只有集線器onConnected方法被調用服務器端的一個。如果我使用單獨的連接在客戶端創建集線器,則會調用OnConnected方法。因此,如果我想爲每個集線器使用相同的連接,還有其他解決方法,但還想提高單獨集線器的連接事件。
即使連接在集線器之間共享? –
是的。這是當前的實施。如果客戶端沒有訂閱集線器的任何事件,則不需要創建永遠不會被使用的集線器對象。這是javascript客戶端的行爲。 .NET客戶端將始終獨立於訂閱事件或不創建連接。我將編輯答案以提供更多信息。 – DDan
這很奇怪,但很好。 – Jacob