使用内置 Azure 原语通过最新值快照进行实时更新

问题描述 投票:0回答:1

我想构建一个 Azure 应用程序,向客户端发送密钥实时更新。

所需功能:

  • 能够公开可用于推送键值更新的 REST 端点(例如
    key1: value1
    )。
  • 能够将所有密钥的累积最新值的快照发送到新连接的客户端(例如
    { key1: value1, key2: value2 }

我正在考虑使用 Azure SignalR 在“默认”(即不是“无服务器”)模式下执行此操作,该模式由 Azure 应用服务托管的自定义服务提供支持,该服务公开用于更新的 REST 端点,并且还保留并将快照转发到新的连接的客户端。

现在我想知道:是否有任何方法可以使用“开箱即用”的 Azure 构建块来完成上述任务,而无需编写和维护自定义 Web 应用程序?我正在寻找的功能对于实时应用程序来说似乎相当标准,所以我很惊讶我无法找到一种简单的方法来做到这一点。我在网上看到的所有代码示例要么需要自定义 Web 应用程序,要么似乎根本无法解决向新客户端发送最新值快照的问题。

如果我需要开箱即用的技术,我不介意切换到不同的技术(例如 Azure Web PubSub)。

azure signalr snapshot azure-signalr azure-web-pubsub
1个回答
0
投票

Azure SignalR(或 Web PubSub)为你在应用程序中实现实时功能提供了基础服务,但我不相信有一种无代码的方式可以端到端地完成所有工作。

但是您可以使用 Azure 中的功能以更少的代码编码方式来实现它。这将涉及使用 Azure Functions,特别是 Durable Functions。

这是一个高级流程

  • Azure SignalR(或 Web PubSub)用于客户端推送实现,使用 Azure 函数绑定
  • HTTP 触发函数来更新有状态实体
  • 另一个将最新更新推送到所有客户端的功能(这可以是 HTTP 触发、队列触发等,将由更新命令直接/间接调用)

请注意,上述内容虽然涉及很少的自定义代码(除了实体部分),但由于持久函数的工作方式而涉及幕后的队列消息,这会增加更新的延迟。

© www.soinside.com 2019 - 2024. All rights reserved.