【问题标题】:Is Action Cable the same thing as Faye?Action Cable 和 Faye 一样吗?
【发布时间】:2017-07-10 22:59:36
【问题描述】:

在我的应用程序中实现 Web Sockets 我很困惑哪个 gem 更好。我发现了很多不同的机会,但是,有些机会很难区分。

最后,我选择了 Action Cable(Rails 5 原生部分)和 Faye(出现得较早并且非常受欢迎)。

但现在我被困住了——Action Cable 和 Faye 一样吗?哪些是差异(如果有的话)?

【问题讨论】:

  • 投反对票比回答容易吧?
  • 我认为否决票是因为问题有点儿off-topic
  • 我认为这是因为人们喜欢“运行迁移的命令是什么?”之类的问题。我的问题不是题外话,但是,它看起来一目了然。至少我不想跑题。我只是想在集成任何这些 gem 之前了解 进一步编程有什么不同。
  • 为什么离题??
  • @FelipeMaion 人们认为我问的是:“哪个宝石更好?”。然而,这是一个关于这些宝石之间区别的问题。

标签: ruby-on-rails websocket faye actioncable


【解决方案1】:

来自 Faye 网站: Faye 是一个基于 Bayeux 协议的发布-订阅消息系统。它为 Node.js 和 Ruby 提供消息服务器,以及在服务器和所有主要 Web 浏览器中使用的客户端。

来自 ActionCable 自述文件: Action Cable 将 WebSockets 与 Rails 应用程序的其余部分无缝集成。它允许以与 Rails 应用程序的其余部分相同的样式和形式用 Ruby 编写实时功能,同时仍然具有高性能和可扩展性。它是一个提供客户端 JavaScript 框架和服务器端 Ruby 框架的全栈产品。您可以访问使用 Active Record 或您选择的 ORM 编写的完整域模型。


简短的回答是肯定的,两者都是发布/订阅消息系统。

长答案是否定的,因为 faye 是一个低级工具,ActionCable 使用 faye (look here),至少一些组件。

但是,使用 faye 或 ActionCable 构建应用程序(也许)不同的努力,您总是可以获得相同的结果。最大的不同是 Faye 作为基于机架的组件而不是基于导轨的组件工作。

【讨论】:

  • 未来的读者可能想知道 ActionCable 的表现非常糟糕。我只是在将我的工作转移到生产环境之后遇到了自己的问题,而且它真的很糟糕,以至于如果你期望高流量它就无法使用。例如,这里的这篇文章描述了一个涉及 20,000 个空闲客户端的基准测试。 ActionCable 使用 3.5GB 内存,与其他解决方案相比,medium.com/@leshchuk/from-action-to-any-1e8d863dd4cf
猜你喜欢
  • 1970-01-01
  • 2018-03-28
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 2019-02-15
  • 2017-02-24
  • 2018-03-10
  • 1970-01-01
相关资源
最近更新 更多