javascript - Ruby on Rails 实时事件通知

标签 javascript jquery ruby-on-rails ajax websocket

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

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

  1. 您会在 Rails 中使用哪种内存来保存此信息,还是会使用 Faye + 订阅/取消订阅 channel 事件处理程序?
  2. 用户如何才能说三件事:“嘿,服务器,我在该页面上”、“嘿,服务器,我还在该页面上”和“嘿,服务器,我要离开此页面”。<

提前感谢各位的帮助!

P/D:我正在使用 Rails 3。

最佳答案

您可以使用 Redis 的 ajax 请求.

您可以使用expiration date在redis中设置 key ,并且使用 ajax 更新过期日期,如果用户关闭选项卡, key 将过期,并且您认为用户不再进行编辑。

希望对你有帮助

关于javascript - Ruby on Rails 实时事件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663613/

相关文章:

javascript - fullpage.js 带有固定侧边栏图片库

mysql - 将 mysql 查询转换为 postgresql 后出现错误

ruby-on-rails - Rails - 使用 devise_token_auth 设计不发送确认电子邮件

javascript - 将 Javascript 和 SCSS 文件添加到 wordpress 插件

javascript - 在数组中查找 1-200 的素数

javascript - 如何停止 Angular 重复的 api 调用

javascript - 如何在需要时仅提交一个隐藏/显示字段数据 - Laravel

javascript - 使用 jQuery 插入包含函数的脚本?

javascript - 使用 jQuery 读取 JSON 对象

ruby-on-rails - 使用 HTTParty 将 Content-Type 更改为 JSON