来自服务总线Qeue的Azure SignalR通知

时间:2019-03-05 22:36:03

标签: .net-core azureservicebus azure-signalr

我们有一个处理多个消息主题/订阅的服务总线队列,我们​​希望能够在处理某些消息时通知已连接的用户已处理了一条消息。 消息处理是在一个简单的控制台应用程序中进行的,但是我们不确定如何创建与Azure SignalR服务的连接以及如何在处理完消息后发送消息。

1 个答案:

答案 0 :(得分:0)

我相信最简单,最具可扩展性的方法是使用简单的azure函数来执行此操作。

您只需要使用Service Bus Trigger即可在消息到达时运行您的功能,并使用SignalR Service Output Binding将消息发送给您的用户。

您的功能可能很简单

[FunctionName("ServiceBusQueueTriggerCSharp")]                    
public static void Run(
    [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")] 
    string myQueueItem,
    [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages
    ILogger log)
{
    return signalRMessages.AddAsync(
        new SignalRMessage 
        {
            Target = "newMessage", 
            Arguments = new [] { myQueueItem } 
        });
}