在 Rails 中实现聊天

Posted

技术标签:

【中文标题】在 Rails 中实现聊天【英文标题】:Implementing chat in Rails 【发布时间】:2012-05-09 07:14:09 【问题描述】:

我正在尝试在我的 rails 应用程序中实现 chat module。我查看了这个 railscast Faye 教程。在本教程中,Ryan 提到了 broadcasting 消息,但我想要的更像是客户端之间的 private conversations,而不是广播。

通过faye可以做到吗?还是有更好的方法?

【问题讨论】:

这只是改变你的想法的问题。即使它被称为“广播”,您实际上只是在创建一个供两个人订阅的唯一 URL。 【参考方案1】:

有一个 gem 可以为您处理 faye 的 autentications,因此用户只能收听您订阅的频道。还有一个关于那个宝石的 railscast。 https://github.com/ryanb/private_pub

【讨论】:

我正在尝试两个人之间的某种私人对话,而不是聊天室。 Faye的订阅是基于url的,那怎么能用于个人之间的私聊呢? /conversation/conversation_id。对话与聊天有何不同?【参考方案2】:

我对 Faye 了解不多,但是假设原理与纯 node.js 和 websockets 之类的原理相同,您可以将可以订阅的频道划分为尽可能多的聊天,那么您需要在客户端订阅该频道之前进行某种身份验证,其中有多种方法,与大多数身份验证系统一样(例如共享密钥、用户名/密码、质询/响应等)。

【讨论】:

【参考方案3】:

我在private_pub 上使用了 Ryan 的教程来实现类似 Gmail 的即时消息功能。它实际上并不是很复杂。看看我是如何在本教程中实现的 http://goo.gl/l3e8zN

【讨论】:

以上是关于在 Rails 中实现聊天的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 4 中实现通用搜索

如何在没有rails的ruby中实现Application Record

如何在 Rails 中实现 Paypal 回调? (获取 InvalidAuthenticityToken 错误)

如何在 iPhone 应用中实现谷歌聊天

使用 Websockets 在 Rails 应用程序中实现自动保存

在 iPad App 中实现多用户聊天