【问题标题】:Push data from rails app to clients将数据从 Rails 应用程序推送到客户端
【发布时间】:2016-06-07 15:10:19
【问题描述】:

我正在开发一个主要通过 api 向各种移动客户端(iOS、android 等)公开的 rails 应用程序。该应用程序涉及用户向服务器提交数据(通过 api 调用),但我想要包括的是能够将这些数据推送到其他客户端。一般概念类似于消息传递应用程序,我从客户端向服务器提交消息,接收者从服务器推送消息。

目前我知道的唯一方法是不断地轮询服务器,但肯定有比这更好的技术解决方案。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails push


    【解决方案1】:

    我会考虑在页面中使用 websocket 来推送更新。

    您可以使用Faye 来实现这一点,对于不支持 websocket 的浏览器,它会退回到长轮询和其他解决方法。 Faye 有一个纯 ruby​​ 实现,因此您可能可以访问您的模型层。

    编辑:

    另外,这是一个结合 Faye 和 Rails 的项目。这是相当新的,但可能会做你想做的事。 Faye-Rails

    【讨论】:

      【解决方案2】:

      你应该看看http://www.pusher.com

      Pusher 是一种托管 API,用于快速、轻松、安全地向 Web 和移动应用程序添加可扩展的实时功能。

      如果您需要自托管解决方案,那么您应该查看 slanger gem https://github.com/stevegraham/slanger,它是推送客户端库的服务器实现。当您觉得需要托管解决方案时,只需更改 URL。

      Slanger 是用 Ruby 编写的 Pusher 协议的开源服务器实现。它被设计为在 N 个节点上水平扩展,并且不知道订阅者连接到哪个 Slanger 节点,即不需要将同一频道的订阅者连接到同一个 Slanger 节点。多个 Slanger 节点可以位于负载均衡器后面,无需特殊配置。从本质上讲,它的设计目的是非常容易扩展。

      【讨论】:

      • 谢谢,我正在寻找一个自托管的解决方案,因为这个项目主要是基于我发展知识的需要
      【解决方案3】:

      Ruby 有自己的事件处理库,像 gem 一样实现:

      https://github.com/eventmachine/eventmachine

      也许对你有帮助

      【讨论】:

        【解决方案4】:

        我更喜欢event machine,而不是任何其他解决方案。 faye 稍微复杂一些,但您可以使用事件机编写更复杂的代码。

        您可能想在事件机器上查看this peepcode 截屏视频

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          • 2012-09-10
          • 1970-01-01
          • 1970-01-01
          • 2014-11-07
          • 1970-01-01
          相关资源
          最近更新 更多