2013-06-26 76 views
0

我想在silverlight LOB應用程序(使用caliburn micro)中實現SignalR。 客戶端由用戶加載的多個模塊動態組成。如何在Silverlight LOB應用程序中處理多個信號集線器

在一個模塊中,我可以有許多活動的viewmodel,他們每個人都需要訪問不同的集線器。

我讀過關於SignalR的所有文檔(http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-net-client),但我仍然對如何在不是單個頁面應用程序時使用signalr感到困惑。

我明白我可以在我的應用程序只有一個連接,所以我需要在我的引導程序中創建它。我創建了一個服務來保存一個hubconnection單例。因爲我需要在調用start()之前創建代理,我從服務器獲取所有已知中心的列表併爲它們中的每個創建代理。代理然後被存儲在一個字典中,以便能夠將它們提供給任何視圖模型。 VM將共享相同的代理實例,這是一個問題嗎?

是這樣的,在單個頁面應用程序中使用signalr的方式?

我不知道我的應用程序設計signalr的,因此,如果任何人都可以分享他/她一下經驗,我會gratefull

感謝

回答

0

既然你沒有在第一次創建樞紐(由SignalR處理),沒有理由在頁面之間傳遞明確的句柄。無論何時需要集線器(即從集線器類本身訪問集線器時),都可以這樣得到它:

GlobalHost.ConnectionManager.GetHubContext();

+0

GlobalHost.ConnectionManager.GetHubContextg()是我在服務器端使用的。但我擔心的是客戶端(我的情況Silverlight),這是不同的。 – kdev