2013-03-18 129 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