2

我需要能够以某种方式将List<string>(在我的控制器中加载)与connectionId在 HUB 中生成的关联。

在我的 MVC 应用程序中,我有一个List<string>包含一些数据的操作。加载页面后,在我的 Hub 中执行 OnConnected 方法,ConnectionId生成新的。我想将其ConnectionId与我的List<string>.

由于 OnConnected 在操作完成后执行,我不相信还有另一种方法。有没有?

我如何将列表(或其他对象)传递给我的集线器,以便与特定的 ConnectionId 相关联?

谢谢

4

1 回答 1

1

与其将数据传递到您的集线器,不如从您的集线器获取数据。

因此,例如,您可以使用静态字典/列表让两者相互引用:

public class MyHub : Hub
{
    public override OnConnected()
    {
        MyController.Associate(Context.ConnectionId);
    }
}

public class MyController
{
    public static ConcurrentDictionary<string, List<string>> cidToList = new ConcurrentDictionary<string, List<string>>();
    public static List<string> mylist = new List<string>();

    public static void Associate(string cid)
    {
        cidToList.TryAdd(cid, mylist);
    }
}
于 2013-03-19T00:29:30.977 回答