Action Cable和Faye一样吗?

时间:2017-02-21 10:53:25

标签: ruby-on-rails websocket faye actioncable

在我的应用程序中实现Web套接字我对哪个宝石更好而感到困惑。我发现了很多不同的机会,但有些机会难以区分。

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

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

1 个答案:

答案 0 :(得分:10)

来自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可以作为基于机架的组件,而不是基于轨道的组件。