Ruby on Rails 3 – 公开在线聊天

我想使用rails 3创建一个公共实时聊天应用程序。

我在rails 2上找到了一些例子。任何人都可以告诉你一个很好的例子/教程来开发使用rails 3的实时聊天应用程序。

我首先查看Ilya Grigorik的em-synchony + 示例,然后查看Hector私人聊天服务器gem的代码。

当我尝试在rails 3应用程序中实现公共和私人聊天系统时,我遇到了几个障碍。 我看着faye,juggernaut,node.js等等。 最后,在尝试了几种方法后,我能够实现一个效果很好的系统:

1)我开始按照Devin M提到的Railscast 260中的 faye消息传送video指南开始。我能够快速设置持久消息的rails应用程序,以及将这些新消息推送给所有客户端的聊天服务器。 最大的问题是安全问题。 我无法控制对聊天服务器的访问。

2)这导致我在Railscast 316中使用Ryan Bates的私人酒吧gem – 这有助于通过validation客户的签名来保护您的faye服务器。 这有助于保护服务器,但我遇到了尝试使用我的身份validation系统validation实际用户并添加“谁在线”function的问题。 我在私人酒吧的黑客上工作,在validation时传递用户详细信息,但无法使事情顺利进行。

3)最后,我决定将聊天服务器移动到推送器 – 一个用于实时应用程序的托管API。 我按照本教程学习如何在rails中创建实时调查,以了解如何设置。 虽然不直接关于设置聊天系统 – 本教程以及我已经从上面的Railscast设置的内容(以及易于阅读的推文文档),允许我快速设置安全的rails 3聊天应用程序 – 完成身份validation,’谁在线’,状态信息等等。 最好的部分是……我没有必要处理聊天服务器的管理。

希望这可以帮助某人经历与我相同的过程。

您可以使用Railscast 260获得基础知识,我已经假定了Rails / Ruby的背景知识以及jQuery / JavaScript的一些知识。 截屏video在这里有一个文本版本 , 源代码在这里 ,它也在GitHub上 。

    Interesting Posts