Ruby on Rails 实时活动通知

Posted

技术标签:

【中文标题】Ruby on Rails 实时活动通知【英文标题】:Ruby on Rails realtime activity notification 【发布时间】:2015-04-16 01:07:36 【问题描述】:

我正在尝试实现一个功能,让用户了解其他用户在特定页面上的活动,例如,假设我们有一个博客,用户可以编辑博客文章,我希望当用户进入特定帖子的编辑页面,然后显示一条消息“User1,User2,...,UserN 也在编辑此帖子”。

实现这一点最简单的方法是当用户进入编辑页面时(我们可以根据我们正在渲染的控制器操作知道这一点)然后我们将这些数据存储在某种内存上(Rails.cache 是不错的选择?),当用户离开页面时,我们从内存中删除该记录(解决方案可能是使用 onunload 事件处理程序,但这对我的情况没有用,因为它跳过了几个情况,而且我正在使用 AJAX,这意味着我不会卸载整个 DOM)。 另一方面,我想使用网络套接字或 Faye .. 但是,让我们保持简短,直奔主题: 我希望它尽可能“实时”,这意味着, 我在编辑页面上,如果一些用户已经在编辑页面,最初可能会显示一条消息,当有新用户来编辑同一个帖子时,它应该被添加到消息中,如果一个人离开编辑页面,这应该从编辑页面中删除...具体问题是:

    你会在 Rails 中使用什么样的内存来保存这些信息,或者你会使用 Faye + 订阅/取消订阅频道事件处理程序? 用户如何说出 3 句话:“嘿服务器,我在页面上”、“嘿服务器,我还在页面上”和“嘿服务器,我要离开这个页面”。李>

提前感谢你们的帮助!

P/D:我使用的是 Rails 3。

【问题讨论】:

【参考方案1】:

您可以通过 Redis 使用 ajax 请求。

你可以在redis中设置一个key,用expiration date,用ajax你是在更新过期日期,如果用户关闭标签,key就会过期,你认为用户不再编辑。

希望对你有帮助

【讨论】:

以上是关于Ruby on Rails 实时活动通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ruby on Rails的应用程序级别添加toastr JS通知

Ruby on rails 培训通知及相关材料

如何在Ruby on Rails的autotest中使用本机OS X通知而不是growl?

如何在 Ruby on Rails 中注册服务工作者?

Ruby on Rails 实时更新

ruby on rails 网页上如何实时显示服务器网速?