Pull to refresh

Comments 9

Давно ждал эту более менее рабочую стадию. Переношу старый код, но уже второй день не могу побороть проблему вырезания GlobalHost. Ранее я делал
var context = GlobalHost.ConnectionManager.GetHubContext();
и потом context.Clients.All.InvokeAsync("send", message);

Теперь же на стаке предлагают пользоваться DI, чтобы инициализировать Clients, но дают такие скудные примеры кода, что учитывая, что я вообще не понимаю как этот DI работает ))) у меня ясное дело ничего не выходит.

Лучше читать на английском, ибо при переводе пропало несколько глав (например, у нас используется MEF и Unity, а их выкинули из русской версии). Да и перевод, хоть и удобоварим, но всё равно местами отвлекает.

Про конкретные DI-фреймворки там вообще можно не читать, важно переварить "теоретическую" часть.

Про конкретные фреймворки интересно было прочитать в плане того какие там встречались проблемы и как их решали. Понятно, что это не относится к самому DI, но когда из книги выкидывают главы, напрягает.
Вы не могли бы дать ссылку на данные примеры? Как раз столкнулся с такой задачей, но что-то пока не смог найти подобные примеры на SO.

ну, например, https://stackoverflow.com/questions/27299289/how-to-get-signalr-hub-context-in-a-asp-net-core


я, кстати, выкрутился без DI. Точнее моя проблема оказалась не в этом. Мне надо было вызывать Clients.All.InvokeAsync() с десятого вложенного класса пятнадцатого потока, потому ни о каком DI там речи идти не могло, чтобы это всё пробрасывать, более того эта шутка и в принципе не работает, когда Clients.All.InvokeAsync() вызывается из другого контекста (ну то есть просто из любого другого метода остального апи, не связанного с сигналом), а не от событий методов хаба signalR


В итоге я просто добавил в хаб private static IHubClients _clients; и записывал в неё Clients при первом подключении любого клиента, а потом уже в любое время вызывал _clients.All.InvokeAsync().

А почему тогда вот тут оно работает? stackoverflow.com/a/46319153/4340086

И в чем проблема DI *в десятом вложенном классе пятнадцатого потока*?
Уважаемые, а как кикнуть клиента с сервера? Речь о websocket подключении
Sign up to leave a comment.

Articles