Как получить доступ к соединению SignalR из обработчика событий служебной шины Azure - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть обработчик событий служебной шины в .Net Core 2.1.4 WebAPI для прослушивания и обработки событий.Когда он получает событие, я хочу, чтобы он взял идентификатор пользователя из полезной нагрузки и отправил сообщение всем подключенным клиентам SignalR для этого пользователя.

Как получить доступ к соединениям SignalR из обработчика служебной шины?

Обработчик событий

private async static Task ProcessMessagesAsync(Message message, CancellationToken token)
{
    var receivedObject = JsonConvert.DeserializeObject<MyType>(Encoding.UTF8.GetString(message.Body));

    await _repository.Add(receivedObject);

    // Send something to all SignalR connections for the user ID in receivedObject
}

1 Ответ

0 голосов
/ 25 сентября 2018

Вместо подключения прослушивателя событий через Program.cs вы должны использовать IHostedService .Как только вы это сделаете, ваш IHostedService будет активирован DI, и вы сможете получить доступ к IHubContext<AchievementsHub>.

Я отправил вам запрос на получение здесь.

https://github.com/gcsuk/Achievements/pull/1/files

...