将SignalR用于桌面应用程序是否正确?

SignalR适用于Windows桌面应用程序(winforms / wpf)吗?

使用SignalR与Windows桌面应用程序有什么优缺点?

有任何性能方面的考虑吗?

我想在服务器和许多客户端之间建立实时连接。 连接将是不变的。

SignalR适用于Windows桌面应用程序(winforms / wpf)吗?

来自signalr.net的答案是:

SignalR可用于向ASP.NET应用程序添加任何类型的“实时”Webfunction。

(如其他人所说,它可以自托管,因此不需要IIS )

所以答案似乎是否定的 。 它是服务器端API。 但今天是你的幸运日,因为SignalR的下载不仅揭示了服务器端API,还提供了一个名为Microsoft.AspNet.SignalR.Client45的客户端API,以便在您的应用程序中使用。 它适用于WPF,WF甚至控制台应用程序。

即使它没有,SignalR只是WebSockets协议的包装,它是HTTP协议的一部分,可以在几乎任何平台上使用。 该下载还包含iOS和Xamarin的示例。

使用SignalR与Windows桌面应用程序有什么优缺点?

从服务器获取实时通知。

有任何性能问题吗?

这是一个难以回答的问题,因为没有参考点。 相比什么表现好或坏? 一般来说,我认为你不必担心这一点。 API本身很快,它可以防止您需要执行的慢速拉取请求。

在具有服务器和许多客户端的设置中:如果您需要从服务器向某些客户端发送“推送”通知,那么SignalR很适合使用。

我这样做是为了WPF客户端。

在任何客户端应用程序,WPF,Windows Phone,UWP,iOS,Android(包括HTML)中使用SinglarR集线器是绝对正确的。 Microsoft已在许多平台上创建了客户端库。

在托管SignalR时,您可以在WPF应用程序中定义主机SingalR服务器(集线器),但是您需要一个理由:

原因可能是:

  • IIS不可用
  • 您事先不知道APP的使用位置。 您只需运行一个应用程序即可通知其他应用程序
  • 性能 – IIS增加了一些性能开销。

顺便说一下,SignalR和OWIN已成为新的ASP.NET 5的灵感来源。您现在可以在WPF,控制台应用程序或Windows服务应用程序中托管ASP.NET应用程序而无需IIS,甚至在Linux上。

http://www.asp.net/signalr/overview/deployment/tutorial-signalr-self-host