【问题标题】:Building a remote command for Elpis in C# through HTTP API通过 HTTP API 在 C# 中为 Elpis 构建远程命令
【发布时间】:2015-01-17 21:41:10
【问题描述】:

我正在帮助构建 Elpis,这是一个使用 C# 和 WPF 构建的开源潘多拉音乐播放器。

现在我想要添加一个 HTTP API,以便用户可以通过浏览器控制程序,例如播放/暂停,喜欢/不喜欢当前歌曲。

之后的重点是通过移动设备访问HTTP API来控制程序。

我应该如何构建 HTTP API 以便它可以控制它?

项目的 Github:https://github.com/adammhaile/Elpis

【问题讨论】:

  • 能否描述用户必须通过 HTTP 控制 GUI 应用程序的场景?
  • 基本上它是一个音乐播放器,我希望用户能够远程控制播放器。
  • 例如,您正坐在工作中,想暂停在家播放的歌曲,因为无论如何您都听不到?或者您想在网站上嵌入音乐播放器?对我来说,你到底想要什么并不是很清楚......
  • 后面的重点是通过移动设备访问HTTP API来控制程序。

标签: c# wcf http user-interface remoting


【解决方案1】:

在不知道您究竟为什么希望用户通过浏览器控制 GUI 应用程序的情况下,很难给您好的建议。

假设您在 Windows 上运行 GUI,请查看 OWIN 和项目 Katana。它们允许您在自己的应用程序中轻松托管 HTTP 接口。

【讨论】:

  • 我应该如何在我的项目中使用 Katana 或 OWIN?通过创建基于此的库?
  • 通过在项目中包含 NuGet 包。使用 Microsoft.Owin.SelfHost 进行自托管。请参阅此处获取教程:asp.net/aspnet/overview/owin-and-katana/…
【解决方案2】:

这对您的项目来说可能有点矫枉过正,但我​​建议您使用 ASP.NET Web API 以便您可以构建后端 Web 服务。

【讨论】:

  • 好的,C# 应用程序将如何与 ASP.NET Web API 通信?
【解决方案3】:

假设您真的想要“远程控制 GUI”,最简单的方法就是在您的 PC 和移动设备上安装 TeamViewer。然后你可以远程进入并完全控制你的 GUI。

但我认为您所追求的更像是 Google 音乐。您可以在其中通过 Internet 将音乐流式传输到您的移动设备上。如果是这种情况,我建议您查看ASP.NET Web API

【讨论】:

  • 问题是,我不是唯一会使用这个应用程序的人。任何人都可以在自己的电脑上安装它。我只需要通过 API 提供远程控制。
  • @alexs - 然后我建议使用 Web API。听起来完全符合您的需要
  • 好的。但是那么 web api 将如何与程序通信呢?
  • 它没有。它反过来工作。您的 GUI 程序和移动应用程序与 Web Api 进行通信。
  • 但这就是我所要求的,通过 api 访问更改正在播放的歌曲。
【解决方案4】:

用 C# 构建 Web 服务器并不难。您可以将其嵌入到您的应用程序中,并将应用程序的部分内容作为 API 公开给 HTTP 端点。您可以使用属于 .NET 的 HttpListener 类,并自己从头开始做所有事情。或者你可以使用类似Nancy 的东西,它是一个轻量级框架,提供了很多有用的脚手架,比如 URL 路由。

【讨论】:

    【解决方案5】:

    最终将 Kayak(https://github.com/kayak/kayak) 用于我的自托管 API。

    集成的例子可以在这里看到: https://github.com/adammhaile/Elpis/blob/master/Elpis/WebInterface.cs

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 1970-01-01
      • 2021-02-23
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      相关资源
      最近更新 更多