最佳Ruby on Rails WebSocket工具[关闭]


81

我在Rails 3中开始了项目,我需要添加通知(例如Facebook)。最好的方法是将WebSocket用于iPad之类的支持设备,但是我找不到能在Rails中轻松实现它的任何好的工具。我找到了Pusherapp,但价格不菲,我也不认为将数据提供给第三方公司是明智的。所以需要做的事情:

  • 开源的
  • 某种渠道支持
  • Rails的助手(和Rails 3一起使用)

Answers:


80

如果要搜索简单的WebSocket实现,则EM-WebSocket可能是最好的。如果您想支持非Flash回退(例如旧手机或iPhone 3G),则应尝试Socket.IO-rack

对于诸如Pusher(具有身份验证和通道)之类的功能齐全的实现,您有两个开源选择:SockyJuggernaut

Socky是一个使用EM-WebSocket(如pusher)的纯红宝石项目,它具有一些用于Rails的不错的工具。另一方面,剑圣拥有更多的历史(和更多的atm用户),但是新版本被重写为Node.JS(客户端仍基于红宝石)并且需要Redis。两者都应该工作正常。


4
对于那些感兴趣的人,剑圣现在已被弃用。作者建议改用HTML5服务器端事件,并在弃用公告链接中提供漂亮的注释。
杰夫·迪基

3
作为@Jeff评论的后续,Rails 4通过ActionController :: Streaming模块为SSE提供了内置支持。此处的文档:api.rubyonrails.org/classes/ActionController/Streaming.html
user456584 2014年

所述HTTP / WebSocket伺服器是一个C扩展到Ruby提供天然的pub / sub以及Redis的连通性。它由plezi框架使用,该框架也可以用作Rails中的中间件。
神秘



9

另一个可能满足您的需求但更深奥的选择是使用一个Jruby应用服务器并使用其中一个Java websockets实现。众所周知,Jetty(特立尼达的基地)拥有最好的websockets支持。另一个选择(非常酷)是使用带有websocket包装器的消息传递服务器作为消息端点。例如,Torquebox(专用的Jruby / Rails应用服务器)具有对HornetMQ的内置支持,而HornetMQ又具有对websockets的支持

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.