2012-09-28 47 views
0

在我的數據庫中,用戶具有一些區域權限。 我想要做的是將這些區域添加到SignalR組中。 因此,當用戶登錄時,我從數據庫中獲取這些組並保存在Session [「groups」中],當用戶連接到signalR時,我使用此會話添加Groups。 事情是這樣的:如何在SignalR中使用會話連接

public Task Connect() 
{ 
    var groups = (string[])Session["groups"]; 
    foreach (var group in groups) 
    { 
     Groups.Add(Context.ConnectionId, group); 
    } 
} 

我怎麼能做到這一點或類似的東西?

回答

0

如這裏SignalR Hubs - Managing groups

提到您可以添加連接組,將消息發送到特定羣體。組不在服務器上保存,因此應用程序負責跟蹤哪些組中的連接,從而實現組計數等事情。

這意味着您必須提供自己的結構(如字典)來保存您的數據。

例如,一個字典可以將組名稱保存爲鍵值,並將區域列表保存爲值(或者如果最適合您,則以其他方式保存)。

因此,對於用戶的每個新區域,首先更新此字典,然後將用戶訂閱到已更改的組。

Groups.Add(Context.ConnectionId, group);

不過看看上面的鏈接,並在這裏Topic based pub sub design patern。不要猶豫,因爲WCF的標題。仔細看看他實施過濾器類的方式