如何在SignalR connect中使用会话

如何在SignalR connect中使用会话,signalr,Signalr,在我的数据库中,用户具有某些区域权限。 我想做的是将这些区域添加到信号器组中。 所以,当用户登录时,我从数据库获取这些组并保存在会话[“组”]中,当用户连接到signalR时,我使用此会话来添加组。 大概是这样的: public Task Connect() { var groups = (string[])Session["groups"]; foreach (var group in groups) { Groups.Add(Context.Conne

在我的数据库中,用户具有某些区域权限。 我想做的是将这些区域添加到信号器组中。 所以,当用户登录时,我从数据库获取这些组并保存在会话[“组”]中,当用户连接到signalR时,我使用此会话来添加组。 大概是这样的:

public Task Connect()
{
    var groups = (string[])Session["groups"];
    foreach (var group in groups)
    {
        Groups.Add(Context.ConnectionId, group);
    }
}
我如何才能做到这一点或类似的事情?

如这里所述

您可以向组添加连接并向特定组发送消息。组不会持久保存在服务器上,因此应用程序负责跟踪哪些组中的连接,以便实现组计数等功能

这意味着您必须提供自己的结构(如字典)来保存数据

例如,一个以组名为键、以区域列表为值的字典(如果最适合您,也可以使用其他方法)

因此,对于用户的每个新区域,首先更新此词典,然后向用户订阅已更改的组

Groups.Add(Context.ConnectionId,group)

不过,看看上面的链接和这里的链接。不要因为标题上的WCF而犹豫。进一步了解他实现Filter类的方式