2013-03-08 34 views
1

我正在尋找我的jQueryAjax提醒功能在我的MVC4應用程序中的替代解決方案。我偶然發現了SignalR,看起來它可以解決我的解決方案,但是我聽說你可以向某個客戶端而不是所有客戶端進行廣播,我似乎無法找到一個示例。提醒已選取用戶SignalR

基本上所有我想知道的是:

  1. 在設置爲可以ClientID的是在登錄的用戶名的應用程序?
  2. 您是否能夠播放特定角色和/或用戶ID列表
  3. 是否有任何示例可以幫助演示上述情況?

在此先感謝

+1

您可能想查看由signalr團隊編寫的jabbr應用程序。 https://github.com/davidfowl/JabbR/tree/master/JabbR – 2013-03-08 17:01:11

+0

這是VS2012嗎?我似乎無法打開它。 – CR41G14 2013-03-08 17:08:15

+0

是的,它是VS2012,適合我。 – 2013-03-08 17:24:30

回答

1
  1. 隨着SignalR您可以管理自己的用戶身份。 SignalR使用ConnectionId表示每個用戶,但最終由開發人員將其映射到現有用戶配置文件。
  2. 是的,您可以向團體或特定客戶進行廣播。您可以將客戶端添加到組,然後將單個消息同時發送給多個人,也可以發送給特定的客戶端。
  3. 正如在評論中指出的那樣,JabbR是一個非常好的例子。另外爲了讓SignalR快速入門,請查看Quick Start Hubs page。最後SignalR是開源的,所以請查看sourcewiki
+0

感謝您的回覆!這個連接ID是否會在每次連接時更改,並且可以在設置連接時進行設置?即connection.ConnectionID = WebSecurity.CurrentUserID? – CR41G14 2013-03-11 09:26:03

+0

每個連接的連接ID都會改變(這是一個GUID),並且您不能在連接設置中設置連接ID。我建議在您的中心上創建一個靜態ConcurrentDictionary <字符串,UserProfile>,其中UserProfile是您自己的數據結構,其中包含用戶WebSecurity標識等。在Onconnected中添加字典時,在OnReconnected中檢查用戶是否在那裏;如果他不是,那麼添加他,在OnDisconnected從字典中刪除用戶。 – 2013-03-11 16:55:10