在我的应用程序中实现Web Sockets时,我对哪个gem更好感到困惑。我发现有很多不同的选择,但是有些很难区分。
最终,我选择了Action Cable(Rails 5的本地部分)和Faye(早期出现并变得非常流行)。
但现在我卡住了 - Action Cable和Faye是一样的吗?它们之间有什么区别(如果有的话)?
在我的应用程序中实现Web Sockets时,我对哪个gem更好感到困惑。我发现有很多不同的选择,但是有些很难区分。
最终,我选择了Action Cable(Rails 5的本地部分)和Faye(早期出现并变得非常流行)。
但现在我卡住了 - Action Cable和Faye是一样的吗?它们之间有什么区别(如果有的话)?
来自 Faye 网站:Faye 是基于 Bayeux 协议的发布-订阅消息系统。它提供了用于 Node.js 和 Ruby 的消息服务器,以及用于服务器和所有主要 Web 浏览器的客户端。
来自 ActionCable 自述文件:Action Cable 与 Rails 应用程序的其余部分无缝集成 WebSockets。它允许在 Ruby 中编写实时功能,并采用与您的 Rails 应用程序的其他部分相同的样式和形式,同时仍然具有良好的性能和可伸缩性。它是一个全栈提供程序,提供客户端 JavaScript 框架和服务器端 Ruby 框架。您可以访问使用 Active Record 或您选择的 ORM 编写的完整域模型。
简短回答是:是的,两者都是发布-订阅消息系统。
详细回答是:不完全是,因为 Faye 是一种低级工具,而 ActionCable 使用 Faye (看这里),至少某些组件如此。但是,您始终可以使用 Faye 或 ActionCable 构建应用程序并获得相同的结果(也许需要不同的努力)。最大的区别在于 Faye 作为基于 Rack 的组件而不是基于 Rails 的组件工作。