我在.Net Core 2.1.4 WebAPI中有一个Service Bus事件处理程序,用于侦听和处理事件。当它接收到一个事件时,我希望它从有效负载中获取一个用户ID,并向该用户的所有连接的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
}
答案 0 :(得分:1)
您应该使用IHostedService,而不是通过Program.cs连接事件侦听器。完成后,您的IHostedService将被DI激活,您可以访问IHubContext<AchievementsHub>
。
我在这里向您发送了拉取请求。