【问题标题】:Methods for streaming data real-time from cloud to .NET application?将数据从云实时流式传输到 .NET 应用程序的方法?
【发布时间】:2013-09-16 01:50:01
【问题描述】:

我正在寻找一个解决方案列表,其中包含实现从 Web 服务器到客户端 .NET 应用程序的流数据的详细信息/起点。特别是,SQS 和 SNS 等云服务与 SignalR 和轮询/或自定义解决方案有何不同?

我已经确定了这些技术。我正在寻求一份说明,以分享这些技术的具体关联方式以及它们的适用范围:

【问题讨论】:

    标签: asp.net amazon-web-services signalr comet polling


    【解决方案1】:

    这种分类会有所帮助:

    1. 基本机制:推与拉(轮询):
      1. push:通常使用开放套接字实现:原始 tcp、websocket(用于 HTML5 客户端)。
      2. 轮询:客户端每隔一段时间查询一次服务器
      3. 长轮询:类似于轮询,但服务器保持请求打开并响应新事件
    2. 通用概念/流行语
      1. 彗星
    3. 语言/框架/技术
      1. .Net - 信号IR
      2. nodejs - socketIO(使用了多种技术,但主要用于 Web 客户端)
      3. python - 扭曲的龙卷风(通用框架)
      4. 队列技术:RabbitMQ、AMQP、0MQ - 都具有多种语言绑定
      5. XMPP(标准/协议)- 具有多种语言绑定的多个服务器实现
    4. 自托管与托管服务
      1. 您托管使用上述框架之一实现的“推送”服务器
      2. 其他人正在托管服务并提供服务器 api 和客户端库:
      3. 酒馆
      4. 推动者
      5. MS Azure:服务总线、通知总线
      6. AWS SQS - 托管队列(客户端轮询/长轮询的地方),SNS - 多种格式与您的用例大多不相关(可能除了 webhook)

    要检查/比较的其他事项:

    1. 延迟 - 技术之间的差异很大
    2. 消息吞吐量
    3. 可扩展性模型

    【讨论】:

      【解决方案2】:

      让我试着在这里回答我自己的问题。请在可能的情况下扩展/进行更正和澄清。

      Comet -> 通过 HTTP 将数据推送到客户端的模型。 Comet 是一个涵盖多种技术的总称。

      轮询 -> 一种通过重复请求通过 HTTP 检索数据的方法

      Web Sockets -> HTMl5 中取代 COMET 的新技术部分。支持有限?

      云服务 -> 用于消息传递和通知的“托管”解决方案。这些服务可能会使用 Comet、轮询或 Web 套接字,具体取决于可用的内容。

      MsgConnect 和 SignalR -> 这些是自托管的解决方案/技术,用于通过 HTTP 并且可能使用 Comet 技术和/或网络 Web 套接字。 SignalR 主要是一种 .NET 技术,旨在实现网络流式传输。

      SignalR 可以使用 Comet 技术或轮询和/或可能部署在云上。它们只是传输方法,不包括云服务等服务器服务

      云服务与 SignalR 等技术的不同之处在于,它们包括用于传输数据的 API、用于托管数据的数据库以及客户端也可以连接的可用服务地址,而 SignalR 将部署在一个 Web 服务器/服务器上管理/拥有。

      有关更多信息,请参阅以下内容:

      什么是 ASP.NET SignalR ASP.NET SignalR 是一个面向 ASP.NET 开发人员的新库,它可以非常简单地将实时 Web 功能添加到您的应用程序中。什么是“实时网络”功能?它可以让您的服务器端代码实时将内容推送到连接的客户端。

      http://www.asp.net/signalr

      http://www.asp.net/signalr/overview/getting-started/tutorial-signalr-self-host

      Comet 是一种 Web 应用程序模型,其中长期持有的 HTTP 请求允许 Web 服务器将数据推送到浏览器,而无需浏览器显式请求。

      http://en.wikipedia.org/wiki/Comet_(programming)

      WebSocket 旨在在 Web 浏览器和 Web 服务器中实现,但它可以被任何客户端或服务器应用程序使用。 WebSocket 协议是一个独立的基于 TCP 的协议。它与 HTTP 的唯一关系是它的握手被 HTTP 服务器解释为升级请求。 [1]

      http://en.wikipedia.org/wiki/Web_sockets

      Azure“平台即服务”AWS“基础设施即服务” http://gigaom.com/2011/09/04/the-great-debate-windows-azure-vs-amazon-web-services/

      对流数据的轮询、长轮询和 ajax 的良好描述 http://msdn.microsoft.com/en-us/magazine/hh965663.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-14
        • 2016-08-10
        • 2020-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多