【问题标题】:What is the best way of communicating from web->web api->console app and back again?从 web-> web api-> 控制台应用程序再返回的最佳通信方式是什么?
【发布时间】:2015-09-13 19:32:08
【问题描述】:

我正在启动一个小代码项目来学习这个过程,但我不确定在不同部分之间进行交流的最佳方式是什么。

  • 首先,我有一个纯 html/js 客户端,用户需要经常在其中获取实时更新。
  • 其次,我正在考虑运行一个 Web api 应用程序来提供数据。
  • 第三,我有一个控制台应用程序正在运行,它需要与 Web api 应用程序通信。

所以我正在考虑从客户端->web api->控制台应用程序一直使用 WebSockets,但我无法让它工作。我可以让控制台应用程序作为服务器工作,但我不知道如何让 Web api 作为客户端工作,以便在它启动时创建与控制台应用程序的连接,并保持打开状态以进行通信,同时它根据请求将数据传递给客户端。

我尝试了不同的实现,最终使用了 SignalR,因为这似乎是人们今天使用的 :)

由于我在连接时遇到了所有这些问题,我想知道是否有更好的方法来发送数据以满足我的要求? 如果 WebSocket(使用 SignalR)是可行的方法,您能否提供一些带有工作示例的链接?我已经尝试了谷歌的所有顶级链接,但没有成功^^

提前致谢

【问题讨论】:

    标签: c# websocket signalr


    【解决方案1】:

    您的 WebAPI 项目也可以充当 WebSocket 服务器。检查使用IHttpHandlerthis link,但您也可以在WebAIP 的控制器中执行此操作:Using WebSockets with ASP.NET Web API

    控制台应用程序应作为客户端连接,例如使用ClientWebSocket class

    WebSockets 是持久的全双工连接,因此一旦客户端连接,两端就可以将信息推送到另一端。

    【讨论】:

    • 谢谢。我明天回家看看。我看到我以前访问过这些链接,但我会再试一次。感谢您的输入:)
    • 我会接受这个答案,因为我正朝着正确的方向前进。没有一个链接实际上提供了完整的故事,但有些元素很好,比如 IHttpHandler 和使用 Web API 应用程序作为唯一的服务器。解决我的问题的是关于 PluralSight 的一个非常棒的教程,称为 SignalR Introduction。他会指导您完成所有必要的步骤,我现在有一个工作示例:)
    • SignalR 适用于小型应用程序,但它在可扩展性方面有很多限制;)在他们关于“Scaling Out”的文档中进行了解释。
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2017-05-18
    • 1970-01-01
    • 2013-08-25
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多