我在尝试在我的Rails 3应用程序中实现公共和私有聊天系统时遇到了几个障碍。我查看了faye,juggernaut,node.js等内容。最终,在尝试了几种方法后,我能够实现一个很好的系统:1)首先,我按照Devin M提到的Railscast 260中的视频指南来进行faye消息传递。我能够快速设置一个Rails应用程序,将消息保存并将这些新消息推送到所有客户端的聊天服务器上。最大的问题是安全性。我无法控制对聊天服务器的访问。2)这使我使用了Ryan Bates的Private Pub Gem,在Railscast 316中介绍了如何通过验证客户端的签名来保护您的faye服务器。这对于保护服务器有效,但我在尝试验证实际用户和添加“在线用户”功能时遇到了问题。我尝试了一种私有发布hack来传递用户详细信息进行身份验证,但无法流畅地运行事情。3)最终,我决定将聊天服务器移动到pusher - 这是一个实时应用程序的托管API。我按照如何在Rails中创建实时调查的教程来了解如何设置。虽然这不是直接关于设置聊天系统的内容,但是这个教程以及我已经从上面的Railscast中设置的内容(和易于阅读的pusher文档),使我能够快速设置一个安全的Rails 3聊天应用程序 - 包括身份验证,“在线用户”,状态消息等。最好的部分是...我不必处理聊天服务器的管理。希望这能帮助正在进行与我相同过程的人。
您可以通过观看 Railscast 260 来了解基础知识,我假设您已经具备 Rails/Ruby 开发背景和一定的 jQuery/JavaScript 知识。该视频教程有一个文本版本和源代码,同时也可以在GitHub上找到。请注意保留 HTML 格式。