Reputation: 21368
I need to be able to somehow associate List<string>
(that gets loaded in my controller) with a connectionId
that is generated in the HUB.
In my MVC app I have an Action that fills List<string>
with some data. After the page is loaded, OnConnected method is executed in my Hub where a new ConnectionId
is generated. I would like to associate that ConnectionId
with myList<string>
.
Since OnConnected is executed after the action completes I don't believe there's another way of doing it. Is there?
How would I pass a List (or some other object) to my hub so that is associated with a specific ConnectionId?
thanks
Upvotes: 2
Views: 1231
Reputation: 18301
Instead of passing data to your hub, take in data from your hub.
So for instance you can use static dictionaries/lists to have the two reference eachother:
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);
}
}
Upvotes: 1