Rails - 同步 - Faye、Juggernaut、Cool.io、普通的旧事件机器
Posted
技术标签:
【中文标题】Rails - 同步 - Faye、Juggernaut、Cool.io、普通的旧事件机器【英文标题】:Rails - syncing - Faye, Juggernaut, Cool.io, plain old eventmachine 【发布时间】:2011-07-02 11:01:52 【问题描述】:我需要同步并且选择超载。似乎可用的选项包括:Faye、Juggernaut、Cool.io、plain old eventmachine
有什么建议吗?什么是最受欢迎的,尤其是在 RoR 社区?
感谢您对您的建议的任何解释。
【问题讨论】:
我们一直在使用 Juggernaut,并在 3 小时内完成并运行了一个解决方案。阅读我们的博文了解更多信息。Juggernaut with Rails 【参考方案1】:我刚刚在我的一个应用中实现了 Juggernaut,我认为它很棒。它使用 Redis 的 pub/sub 功能和Socket.IO 最大化浏览器/移动支持。
Here's 与 Faye 进行比较的讨论。我不相信 Faye 使用 Socket.IO,这也是我选择 Juggernaut 的原因之一。我也喜欢 Juggernaut 的简单性,因为它符合我的特定用例。
Juggernaut 使用 Node.js 作为其服务器,使其易于扩展,并提供了一个 Ruby gem,使将消息发布到 Redis 变得轻而易举。
这是在 Ubuntu 10.04 上设置它的 quick post。
您还可以查看Pusher,这是一项为您完成所有工作的服务。
【讨论】:
我们还在工作中使用 EventMachine 构建了一个原始的 WebSocket 服务器,但我发现使用 Node.js 和 javascript 更适合这种服务。【参考方案2】:我在一个试验项目中使用http://socket.io/ 来持续更新网络客户端(例如在聊天应用程序中)。 ruby 服务器实现在这里:https://github.com/markjeee/Socket.IO-rack。它有点“原始”,但工作正常。它基于Thin、Rack和EventMachine,需要redis才能运行。
最大的优势是可用协议的数量,因此即使您使用的是旧浏览器,它也应该可以正常工作。我没有做过任何基准测试,但根据成分,它应该足够快。
【讨论】:
以上是关于Rails - 同步 - Faye、Juggernaut、Cool.io、普通的旧事件机器的主要内容,如果未能解决你的问题,请参考以下文章
对选择 Faye 或 Rails 4 Actioncontroller::Live 的困惑
Faye Websocket 错误 Rails 2.2.2(生产)
Websocket rails (Faye-websocket) 握手错误代码 200 - AWS ElasticBeanstalk、nginx、puma
通过 Faye 在 Rails 应用程序上进行实时聊天,但通过 Apache 在乘客上进行实时聊天