2013-03-18 3 views
1

Мне нужно как-то связать List<string> (который загружается в мой контроллер) с connectionId, который генерируется в HUB.signalR, передающий объекты в концентратор

В моем приложении MVC у меня есть действие, которое заполняет List<string> с некоторыми данными. После загрузки страницы метод OnConnected выполняется в моем концентраторе, где создается новый ConnectionId. Я хотел бы связать это ConnectionId с моим List<string>.

Поскольку OnConnected выполняется после завершения действия, я не верю, что есть другой способ сделать это. Здесь?

Как передать список (или некоторый другой объект) в мой концентратор, чтобы связать его с определенным 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 будет присвоено объекту LAST List ShaneKm

Смежные вопросы