使用 CosmosDB 触发器从 Azure 函数发送 Azure SignalR 消息

问题描述

我正在开发一个应用程序,它使用 CosmosDB 来存储数据,然后当有人更新数据时,我希望客户端得到更新。 为此,我决定使用 changeFeed,然后使用 Azure Functions 和 Azure SignalR。

我已经设置了 2 个函数。 协商功能(此功能有效并且客户端正确连接到 SignalR 服务器) 还有一个 OnDocumentsChanged 函数,我的问题是让函数在发生变化时实际发送消息。

我有以下功能

[FunctionName("OnDocumentsChanged")]
    public static async Task Run(
        [CosmosDBTrigger(
        databaseName: "NewOrder",collectionName: "NewOrder",CreateLeaseCollectionIfNotExists = true,ConnectionStringSetting = "myserver_DOCUMENTDB",LeaseCollectionName = "leases")]
            IReadOnlyList<Document> updatednewOrder,[SignalR(ConnectionStringSetting = "AzureSignalRConnectionString",HubName = "NewOrder")] IAsyncCollector<SignalRMessage> signalRMessages,ILogger log)
    {
        if (updatednewOrder != null && updatednewOrder.Count > 0)
        {
            foreach (var Orders in updatednewOrder)
            {
                await signalRMessages.AddAsync(new SignalRMessage
                {
                    Target = "NewOrderUpdated",Arguments = new[] { Orders.Id }
                });
            }
            
        }

    }

我可以看到它在对数据库进行更改时正确触发,但没有发送消息。

我想我错过了实际发送 SignalRMessages 的部分,我只是不确定如何实现。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)