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