Action Cable 和 Faye 是一回事吗?

Is Action Cable the same thing as Faye?

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

最后选择了Action Cable(Rails 5的原生角色)和Faye(出现时间早,人气高)

但现在我卡住了——Action Cable 和 Faye 是一回事吗?有哪些区别(如果有的话)?

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

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


简短回答是,两者都是 pub/sub 消息系统。

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

但是,使用 faye 或 ActionCable 构建应用程序(可能)不同的努力总是可以得到相同的结果。最大的区别是 Faye 作为基于机架的组件而不是基于 rails 的组件工作。