【问题标题】:Real time collaborative use interface on the web [closed]网络上的实时协作使用界面[关闭]
【发布时间】:2009-11-10 18:10:52
【问题描述】:

我想知道 Web 界面实时协作背后的技术和最佳实践是什么。

这方面的一个例子当然是 Google Wave。另一个是 PivotalTracker.com。

我对人们在此处使用 Ruby on Rails 所做的任何工作(框架、插件等)特别感兴趣。

我想它必须在某种程度上使用 Javascript,但您需要一种方法来将其抽象出来。可能会定期轮询服务器以查看是否已进行更改,如果在编辑某些内容的过程中服务器返回并说其他人已对其进行了更新,这也是一种解决冲突的方法。

谢谢!

【问题讨论】:

    标签: javascript ruby-on-rails real-time collaboration


    【解决方案1】:

    Wave 有operational transform,它具有易于组合的优点。您有两个用户,他们每个人都在用户界面中做“某事”,两个“某事”可以合并到最终文档中。这样您就可以跳过解决冲突的问题。

    使用Comet 是启用应用程序状态实时更新的好方法,它本质上是一个令人讨厌的代号,用于保持对服务器的活动、长期、未终止的 get/post 请求,该服务器完成并在服务器上发生某些事情时做出响应。它允许向客户端发送即时更新,而无需客户端定期轮询。

    我真的不能说如何在 javascript/r'n'r 中抽象出来,许多底层技术细节已经够难了,而且是特定于应用程序的,没有框架支持它们开箱即用。

    【讨论】:

    • 非常感谢。顺便问一下,你知道 Gmail 是轮询还是使用推送?很好奇。我唯一不喜欢彗星的是浏览器将页面显示为连续加载。这是一个示例:stream-hub.com 谢谢!
    • 两者,取决于上下文。 Gmail 是使用 Closure 编写的(在 Google 中搜索关闭工具),它支持通过 xhr 进行轮询和通过 iframeio 推送。
    猜你喜欢
    • 2016-06-02
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    相关资源
    最近更新 更多