2013-03-18 133 views
1

我需要能够以某种方式将List<string>(在我的控制器中加载)与集线器中生成的connectionId关联起来。signalR将对象传递给集线器

在我的MVC应用程序中,我有一个动作,用一些数据填充List<string>。加载页面后,将在生成新的ConnectionId的Hub中执行OnConnected方法。我想将ConnectionId与我的List<string>联系起来。

由于OnConnected在动作完成后执行,我不相信有另一种方式做到这一点。在那儿?

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

感谢

回答

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); 
    } 
} 
+0

的作品。我假设最后一个connectionId将被分配到最后一个列表对象 – ShaneKm 2013-03-19 12:57:45