UWP 应用程序可以充当 SignalR 服务器吗?

Can a UWP app act as a SignalR server?

我看到了使 WPF 应用程序成为 SignalR 服务器的代码示例:https://code.msdn.microsoft.com/Using-SignalR-in-WinForms-f1ec847b

我可以让我的 UWP 应用程序成为 SignalR 服务器吗?这样其他客户端就可以连接到某人 运行 他们设备上的 UWP 应用程序?

我尝试将 SignalR NuGet 安装到我的 UWP 应用程序,但出现错误:

Install-Package : Microsoft.AspNet.SignalR.Core 2.2.1 is not compatible with UAP,Version=v10.0.


At line:1 char:1
+ Install-Package Microsoft.AspNet.SignalR.SelfHost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

我也在考虑 运行 SignalR 服务器作为服务,然后将 UWP 应用程序连接到它,并将其他客户端连接到该服务。那行得通吗?

SignalR 使用 UWP 上不可用的服务器 API,所以我怀疑这是否可行,尽管我没有更详细地研究它。

但无论如何 UWP 应用程序的工作方式通常都不是一个好主意。例如,当它们不在前台时它们会被挂起,这种情况永远不会发生在任何服务器上。您绝对不能指望它永久可用。您考虑使用 UWP 应用来执行此操作是否有特定原因?

因此,您使用 (Windows?) 服务来托管 SignalR 并将 UWP 应用程序(以及可能的其他 UWP 应用程序)连接到它的方法要好得多,实际上是正确的方法。另一种选择是在 IIS 或您喜欢的任何 Web 服务器中托管 Web 应用程序而不是 Windows 服务,因为处理比在 Windows 服务中自行托管 Web 服务要容易一些。