Я разрабатываю сервис SignalR с использованием AspNetCore.SignalR.
Ниже мой концентратор:
public class NotificationHub : Microsoft.AspNetCore.SignalR.Hub
{
public override async Task OnConnectedAsync()
{
await base.OnConnectedAsync();
}
public override async Task OnDisconnectedAsync(Exception exception)
{
await base.OnDisconnectedAsync(exception);
}
}
Ниже приведен еще один класс Context, который я создал для вызова метода концентратора на стороне клиента:
public class NotificationHubContext
{
private readonly IHubContext<NotificationHub> _context;
public NotificationHubContext(IHubContext<NotificationHub> context)
{
_context = context;
}
public async Task Broadcast(string groupId, string eventName, object data)
{
await _context.Clients.Group(groupId).SendAsync(eventName, data);
}
}
Я хотел бы добавить ссылку на класс NotificationContext в мой собственный контейнер IoC, чтобы я мог просто разрешить его и вызвать метод BroadCast для него, и он должен обрабатывать отправку сообщений клиентам.
Я использую служебную шину для прослушивания сообщений из другой части системы. Как только я получу сообщение из очереди, я хотел бы уведомить подключенных клиентов, используя HubContext из QueueHandler.
Информация о сборке