从API更新应用程序的正确方法是什么?

时间:2019-04-18 00:14:17

标签: c# .net wpf asp.net-core-webapi

项目:

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

语言和框架:

API将以点网核心2.2编写。桌面应用程序将在点网框架4.7.2中使用WPF编写。用于Arduino或Raspberry Pi的其他语言或框架不相关。

问题:

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

1 个答案:

答案 0 :(得分:2)

您似乎需要Web套接字。

与HTTP相对应的Web套接字在客户端和主机之间创建持久连接,从而允许主机将数据实时推送到客户端。

我建议SignalR作为易于使用的Web Socket框架,可以将其轻松添加到.NET Core应用程序中。

在订购系统的Microsoft EShopOnContainers repo中可以找到SignalR的一个很好的例子。

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