Получение HubContext для концентратора SignalR - PullRequest
2 голосов
/ 23 апреля 2019

Я пытаюсь получить хабконтекст от концентратора SignalR.

Я хочу иметь возможность отправлять уведомления клиентам, подключенным к этому хабу, в то время как экземпляр хаба может быть удален.

Предостережение заключается в том, что я динамически регистрирую концентраторы, поэтому у меня есть тип концентратора в качестве объекта Type.

Он регистрируется таким образом:

Application.UseSignalR(R => MapperMethodInfo.MakeGenericMethod(H).Invoke(R, new object [] { Path }));

С H является типом хаба.

Я попытался:

    var HubContext = ServiceProvider.GetService(H);

возвращает ноль.

, и я попытался:

    Application.Use(async (Context, Next) =>
    {
        var HubContext = Context.RequestServices.GetRequiredService(H);
    });

Лямбда-выражение не называется.

Я прочитал: https://docs.microsoft.com/en-us/aspnet/core/signalr/hubcontext?view=aspnetcore-2.2

, и это тот, который предлагает метод выше.

И я также нашел это решение: Получение контекста концентратора в ядре SignalR из другого объекта

, который не может работать, так как мне нужно знать концентраторы во время компиляции, чего я не знаю, поскольку они приходят в формеплагины, во внешних сборках, и найдены и зарегистрированы с отражением.

Все онлайн-публикации и решения revoОбратимся к двум вышеописанным методам, и в этом случае они не работают.

Как я могу получить контекст концентратора?

...