2014-01-15 29 views
1

當用戶登錄我的網站時,他們從下拉列表中選擇屬於哪個羣組。在登錄回發中,當他們登錄時,我想將它們分配給正確的SignalR組。SignalR從控制器加入羣組

按照文檔here,我可以加入客戶端通過:

contosoChatHubProxy.server.joinGroup(groupName); 

有沒有到組從控制器分配的方法嗎?我可以調用Hub:

var hub = new NotificationHub() 
hub.JoinGroup(selectedGroup); 

但hub方法中的上下文爲null。這是可能的,還是我不正確地接近這個問題?謝謝你的任何建議。

回答

7

你不應該新建一個這樣的中心;你可以得到集線器上下文,並從這樣的外部代碼添加用戶到一個組:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>(); 
hubContext.Groups.Add(connectionId, groupName); 
+0

這很有道理,但你如何獲得'ConnectionID'服務器端? – Jonesopolis

+3

您必須將其從客戶端傳遞給控制器​​。在JavaScript的$ .connection.hub.id – davidfowl

+0

啊好吧,這就是我需要知道的。 Thankyou多 – Jonesopolis