【问题标题】:Ruby on Rails 3 - Public live chatRuby on Rails 3 - 公共实时聊天
【发布时间】: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


【解决方案1】:

当我尝试在我的 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 聊天应用程序 - 完成身份验证、“谁在线”、状态消息等。最好的部分是......我不必处理管理聊天服务器。

希望这有助于有人经历与我相同的过程。

【讨论】:

  • 推送器是否也保存(存档)发送的消息,以便在用户在新设备上登录时检索以前的消息。例如,我可以查询和检索特定用户或组的过去两天、一周或一个月的消息。
  • @MuhammadNabeelArif - 我不相信他们当前的 API 提供了该功能(但我可能弄错了)。为了达到同样的效果,我只是将消息保存在数据库中,然后在 2 天后删除旧消息。
  • 您能否详细说明“尝试使用我的身份验证系统验证实际用户的问题”?什么样的身份验证系统,是否重要或任何身份验证系统存在问题?我想了解如何将 LDAP(Active Directory)集成到其中。
【解决方案2】:

您可以通过Railscast 260 了解基础知识,我假设您已经具备 Rails/Ruby 的背景和一些 jQuery/JavaScript 知识。截屏视频有text version heresource is here,它也在GitHub 上。

【讨论】:

    【解决方案3】:

    我首先查看 Ilya Grigorik 的 em-synchony + examples 并查看 Hector 私人聊天服务器 gem 的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多