首页 > 解决方案 > 从 API 更新应用程序的正确方法是什么?

问题描述

项目:

我有一个我想做的项目,涉及将串行数据发送到 Raspberry Pi 的 Arduino,Raspberry Pi 将数据显示到屏幕并更新 API。我想要一个桌面应用程序,它还显示发送到 API 的数据。为了了解这些技术,最初发送的唯一数据将是在 Raspberry Pi 上运行的秒表计时器的状态,IE 运行与停止。我知道定期从应用程序中访问 API 以检索新数据会很简单,但我希望在 API 接收到新信息时更新应用程序。我在想某种订阅系统,我想要更新的应用程序可以订阅 API 并且将同​​时更新。

语言和框架:

API 将使用 dot net core 2.2 编写。桌面应用程序将使用 dot net framework 4.7.2 中的 WPF 编写。用于 Arduino 或 Raspberry Pi 的其他语言或框架不相关。

问题:

每当将新数据推送到 API 时,如何将数据从 dot net core API 推送到 WPF 应用程序?这是一个很好的方法吗?任何用于此目的的信息、建议或相关技术/框架/本机 C# 工具将不胜感激。

标签: c#.netwpfasp.net-core-webapi

解决方案


看起来你需要 Web Sockets。

Web Sockets 与 HTTP 相对,在客户端和主机之间建立持久连接,允许主机将数据实时推送到客户端。

我推荐 SignalR 作为一个易于使用的 Web Socket 框架,它可以很容易地添加到 .NET Core 应用程序中。

可以在订购系统中的Microsoft EShopOnContainers 存储库中找到 SignalR 的一个很好的示例。

在主 API 和 SignalrHub 之间使用消息队列,但是您可以轻松地将两者结合起来用于一个简单的应用程序。


推荐阅读