C# 从API更新应用程序的正确方法是什么? 项目:

C# 从API更新应用程序的正确方法是什么? 项目:,c#,.net,wpf,asp.net-core-webapi,C#,.net,Wpf,Asp.net Core Webapi,我有一个我想做的项目,涉及一个Arduino,它将串行数据发送到Raspberry Pi,Raspberry Pi将数据显示到屏幕上并更新API。我想要一个桌面应用程序,它还显示发送到API的数据。为了了解这些技术,最初发送的唯一数据是Raspberry Pi上运行的秒表计时器的状态,即运行vs停止。我知道定期从应用程序中点击API以检索新数据很简单,但我希望在API收到新信息时更新应用程序。我在考虑一种订阅系统,在这种系统中,我想要更新的应用程序可以订阅API,并将同时更新 语言和框架: 该A

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

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

问题:
每当有新数据被推送到API时,我如何将数据从dot net核心API推送到WPF应用程序?这是个好办法吗?非常感谢为此目的提供的任何信息、建议或相关技术/框架/本机C#工具。

看起来您需要Web套接字

与HTTP类似,Web套接字在客户机和主机之间创建持久连接,允许主机将数据实时推送到客户机

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

信号器的一个很好的例子可以在订购系统中的上找到


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

查看signalRMQTT是另一个选项(通常用于IoT)