如何实现"other users viewing this object"



例如,Zendesk有一个名为Agent Collision Notification的功能-当您编辑票证时,如果其他人正在编辑此票证,您会收到一条注释。

支持此类功能的基础架构是什么?这个问题似乎是针对同一件事,但层次要低得多。

为了使系统完全动态(同时通知第一个查看器)并且速度合理,可能需要一些类似彗星或websocket的东西。但与聊天系统(一个主要的彗星示例)不同的是,Ticket系统中的用户经常切换页面。

对于这样的事情,程序流和服务器基础设施是什么?

如果您想允许实时协作,那么您会感兴趣的这个问题也会提到操作转换。还有一个关于操作转换库的问题。

对于这样的事情,程序流和服务器基础设施是什么?

我为Pusher工作,所以我可以告诉你一个使用我们技术的解决方案。

  1. 用户A打开可能发生"冲突"的页面。在页面内订阅页面的频道
  2. 用户A开始编辑页面。向服务器发送一个AJAX请求,这样就有了一些关于正在编辑页面的持久状态。在频道上触发一个事件,声明用户正在编辑页面
  3. 用户B打开页面。页面加载并可以显示页面正在编辑的持久状态中的信息
  4. 用户A完成编辑,并向服务器发出更新页面状态的请求。触发一个事件,指示没有人正在编辑页面。此事件将分发给用户B(更新后的页面也可以通过事件内分发,或者在收到事件时通过AJAX请求分发)
  5. 用户B现在知道他/她可以编辑页面。它们开始编辑(请参见步骤2),并通知用户A用户B正在编辑页面

使用presence也很酷,这样你就可以看到还有谁在查看页面,并允许用户在更改发生时讨论更改。

相关内容

  • 没有找到相关文章

最新更新