首页 文章

使用Aspnetcore.signalr libray从Hub外部获取HubContext(不是来自Controller)

提问于
浏览
1

我正在使用AspNetCore.SignalR开发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);
        }
    }

以下是我在客户端调用Hub方法创建的另一个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方法,它应该处理向客户端发送消息 .

我正在使用Service Bus来侦听来自系统其他部分的消息,一旦我收到来自Queue的消息,我想使用来自QueueHandler的HubContext通知已连接的客户端 .

Assembly Info

1 回答

  • 0
    var hubContext = app.ApplicationServices.GetService<IHubContext<Notification>>
    

    这解决了我的问题 .

相关问题