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

Seç*_*gay 21 .net c# wpf winforms signalr

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

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

有任何性能考虑因素吗?

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

Pat*_*man 20

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

来自signalr.net的答案是:

SignalR可用于向ASP.NET应用程序添加任何类型的"实时"Web功能.

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

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

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

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

从服务器获取实时通知.

有任何性能问题吗?

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

  • 我不同意 SignalR被设计为有意与IIS和asp.net分离。支持在wpf应用中托管SignalR集线器的方案 (2认同)

Lie*_*ero 9

在任何客户端应用程序,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


DrK*_*och 5

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

我对 WPF 客户端这样做。