我在Rails 3中开始了项目,我需要添加通知(如Facebook一样)。最好的方法是使用WebSocket作为iPad等支持设备,但我找不到任何好的工具来轻松地在Rails中实现它。我找到了Pusherapp,但他们的价格太高了,我也不认为向第三方公司提供我的数据是明智的。所以需要的东西:
答案 0 :(得分:79)
如果您正在搜索纯WebSocket实现,那么EM-WebSocket可能是最好的。如果您想支持非闪存后备(如旧手机或iPhone 3G),您应该尝试Socket.IO-rack。
对于像Pusher这样的全功能实施(使用身份验证和频道),您有两种开源选择:Socky和Juggernaut。
Socky是一个使用EM-WebSocket(像pusher)的纯ruby项目,它有一些很好的Rails工具。另一方面,Juggernaut有更多的历史(以及更多的用户atm。)但新版本被重写为Node.JS(客户端仍然是基于ruby的)并且需要Redis。两者都应该正常工作。
答案 1 :(得分:19)
看看faye。
答案 2 :(得分:10)
EM-WebSocket可能是最好的Ruby实现。事实上,Pusherapp是建立在它上面的。它与EventMachine集成。
Here's a tutorial关于如何使用它。
答案 3 :(得分:9)
另一个可能满足您需求但稍微更深奥的选项是使用其中一个Jruby应用程序服务器并使用其中一个Java websockets实现。众所周知,Jetty(Trinidad的基础)拥有最好的websockets支持。另一个选项(非常酷)是使用带有websocket包装器的消息服务器来实现消息端点。例如,Torquebox(专用的Jruby / Rails应用程序服务器)内置了对HornetMQ的支持,而HornetMQ又支持support for websockets。