У меня внутри моего концентратора метод, который используется для отправки конкретным клиентам, что билет был обновлен. Однако я хочу, чтобы отправить его на сервер внутри контроллера и для конкретных пользователей, вы можете увидеть, как я делаю это ниже:Signalr не отправляет определенным пользователям
Я использую следующий метод для отправки конкретных клиентов:
public void NotifyUpdatedTicket(Ticket ticket, string note, params string[] aliases)
{
foreach (string a in aliases)
{
foreach (string connectionId in _allConnections.GetConnections(a))
{
Clients.Client(connectionId).notifyUpdatedTicket(ticket, note);
}
}
}
в _allConnections такой же, как класс в http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections#inmemory
Однако вместо передачи 1 пользователя Я передал список псевдонимов, а затем получить их соединения и отправить их соединение идентификаторов.
Однако он, кажется, не отправляет правильно, он отправляет его всем клиентам. Вот команда, я использую для вызова метода в мой контроллер:
GlobalHost.ConnectionManager.GetHubContext<TicketHub>().Clients.All.notifyUpdatedTicket(viewModel.Current, viewModel.NewNote, viewModel.Current.OpenedBy, viewModel.Current.AssignedTo);
Когда я посылаю выше команду с конкретным OpenedBy и AssignedTo, он посылает это все пользователи, когда он не должен.
Я пропустил что-то, вызвав его в контроллере, который отправляет его только определенным пользователям или чему-то еще?
Даже когда я вставляю псевдоним лиц непосредственно в метод хаба, он по-прежнему отправляется всем. Я предполагаю, что это связано с методом контроллера.
Никто не знает об этом? – Insight