2015-09-25 20 views
5

Farklı şeyler için birden çok hub oluşturabilir ve her bir hub'a bağlanmak için, paylaşım bağlantısı olan birden çok istemci taraf hubı oluşturabiliriz, böylece bir bağlantı tüm hub. Şimdi, sorun, hub bağlantı kuralı yönteminin her hub sunucu tarafı kodunda yükseltilmemesidir.OnConnected yöntemi, birden çok hub'da paylaşılan bağlantı kullandığımda SignalR olarak adlandırılmıyor

public class Hub1 : Hub 
{ 
     public override Task OnConnected() 
     { 
      return base.OnConnected(); 

     } 
} 

public class Hub2 : Hub 
{ 
     public override Task OnConnected() 
     { 
      return base.OnConnected(); 

     } 
} 

let sonra, istemci tarafında i merkezi olan tanımlı istemci tarafı yöntemlerle hub1 ve Hub2 oluşturmak onConnected yöntem sunucu tarafında çağrılan göbeklerinin tek demek. İstemci tarafındaki hub'ları ayrı bağlantılar ile oluşturursam, OnConnected yöntemi çağrılır. Bu nedenle, her bir hub için aynı bağlantıyı kullanmak istesem de başka bir bağlantı noktasındaki Bağlantılı olayı yükseltmek istesem başka bir iş var.

cevap

5

Her iki hub'a da hata ayıklama noktasını koyarak test ettim ve her iki hub için de her iki hub için de abonelikleriniz olduğu sürece OnConnected çağrılır.

Buraya bakın: Can I debug OnConnected method in SignalR Hub?

Uzun lafın kısası: tasarlayarak da göbeğine herhangi bir aboneliğiniz yoksa, o zaman javascript istemci OnConnected won böylece sunucudan herhangi bir mesaj alamayan aramam lazım.

DÜZENLEME

here Not parçası bakınız:

Not: JavaScript yazılımlar için ise bağlantı kurmak için Başlat yöntemini çağırmadan önce en az bir olay işleyicisi kaydetmek zorunda. Bağlantı

.

+0

Bağlantı, hublar arasında paylaşılıyorsa bile? –

+1

Evet. Mevcut uygulama budur. İstemci, hub'ın olaylarından herhangi birine abone değilse, hiçbir zaman kullanılmayacak olan hub nesnesi (ler) yaratmaya gerek yoktur. Javascript istemcisi durumunda davranış budur. .NET istemcisi, her zaman olaylara abonelik veya hayır olmaktan bağımsız olarak bağlantı oluşturur. Daha fazla bilgi sağlamak için cevabı düzenleyeceğim. – DDan

+0

Bu garip ama iyi bir nokta. – Jacob

İlgili konular