【发布时间】:2011-08-23 05:41:49
【问题描述】:
我想使用 Rails 3 创建一个公共实时聊天应用程序。
我在 rails 2 上找到了一些示例。任何人都可以告诉你一个使用 rails 3 开发实时聊天应用程序的好示例/教程。
【问题讨论】:
-
你想要指针还是教程?
标签: ruby-on-rails ruby ruby-on-rails-3 chat ruby-on-rails-plugins
我想使用 Rails 3 创建一个公共实时聊天应用程序。
我在 rails 2 上找到了一些示例。任何人都可以告诉你一个使用 rails 3 开发实时聊天应用程序的好示例/教程。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 chat ruby-on-rails-plugins
当我尝试在我的 rails 3 应用程序中实现公共和私人聊天系统时遇到了几个障碍。我查看了 faye、juggernaut、node.js 等等。最终在尝试了几种方法后,我能够实现一个运行良好的系统:
1) 我首先按照 Devin M 提到的 Railscast 260 中的 faye 消息传递视频指南开始。我能够快速设置一个持久化消息的 Rails 应用程序,以及一个将这些新消息推送给所有人的聊天服务器客户。最大的问题是安全性。我无法控制对聊天服务器的访问。
2) 这使我使用了 Ryan Bates 在Railscast 316 中的私人 pub gem - 它通过验证客户端的签名来帮助保护您的 faye 服务器。这有助于保护服务器,但我在尝试使用我的身份验证系统验证实际用户并添加“谁在线”功能时遇到了问题。我对私人酒吧进行了黑客攻击,以在身份验证时传递用户详细信息,但无法让事情顺利进行。
3) 最后,我决定将聊天服务器移至pusher - 一个用于实时应用程序的托管 API。我在how to create a real-time survey in rails 上关注了本教程,以了解如何进行设置。虽然不是直接关于设置聊天系统 - 本教程以及我已经从上面的 Railscasts 设置的内容(以及易于阅读的推送器文档),让我能够快速设置一个安全的 Rails 3 聊天应用程序 - 完成身份验证、“谁在线”、状态消息等。最好的部分是......我不必处理管理聊天服务器。
希望这有助于有人经历与我相同的过程。
【讨论】:
您可以通过Railscast 260 了解基础知识,我假设您已经具备 Rails/Ruby 的背景和一些 jQuery/JavaScript 知识。截屏视频有text version here 和source is here,它也在GitHub 上。
【讨论】:
我首先查看 Ilya Grigorik 的 em-synchony + examples 并查看 Hector 私人聊天服务器 gem 的代码。
【讨论】: