【问题标题】:Can a UWP app act as a SignalR server?UWP 应用可以充当 SignalR 服务器吗?
【发布时间】:2016-11-10 23:35:10
【问题描述】:

我看到了一个使 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 应用程序连接到它并将其他客户端连接到服务。这行得通吗?

【问题讨论】:

    标签: c# signalr uwp


    【解决方案1】:

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

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

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

    【讨论】:

    • UWP 应用程序可以在 Raspberry Pi 上的前台运行,直到 pi 被关闭,所以这是有效的用例。
    • @StuartSmith 我仍然不会推荐它,如果 OP 有这样一个特殊的用例,我想他会提到它。但这就是我问他是否有这样一个特殊用例的原因,这是肯定的。
    猜你喜欢
    • 2023-04-09
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多