如何进行实时并发编辑?

Posted

技术标签:

【中文标题】如何进行实时并发编辑?【英文标题】:How to do live concurrent editing? 【发布时间】:2010-11-30 12:26:05 【问题描述】:

我正在尝试构建一个基本上只是一个文本编辑器的 Rails 应用程序(具有一些我在其他任何地方都找不到的附加功能 - 这就是我构建它的原因)

其中一项核心功能是实时并发编辑或实时协作编辑(随便你怎么称呼它)。

到目前为止,我已经使用名为Juggernaut 的插件设置了该站点。这使我能够从客户端或服务器发送我想要的任何 javascript 到每个其他客户端。因此,当有人键入内容时,我可以将该人键入的内容发送给其他所有客户端,而无需其他客户端轮询服务器。

我遇到的问题归结为我不知道使用什么算法来解决冲突并以最好的方式做到这一点。我在Operational Transformation 上阅读了一些内容,但只是简单地不知道如何使用我现在拥有的 Javascript/Rails 解决方案来合理地实现它。

我想要类似 OT 的东西,但不知道如何实现它,也不知道从哪里开始。 对于如何实现这一点的任何帮助,我都会非常高兴!

【问题讨论】:

从可用性的角度来看有趣的问题... 【参考方案1】:

看看MobWrite

【讨论】:

我没看过这个,据我了解,Bespin 正在使用 MobWrite,所以我一定要看看这个!【参考方案2】:

我认为 Google 已经(或即将发布)Wave 作为开源的 OT 逻辑。

也许检查Wave Protocol开源项目。

【讨论】:

【参考方案3】:

你看过 Mozilla 的 Bespin 吗?为了获得灵感,我的意思是——我知道您正在使用 Rails。

【讨论】:

【参考方案4】:

虽然这不是一个完整的答案,但您可以在这里对 Google Wave 如何做到这一点有一个非常有趣的见解:

http://www.youtube.com/watch?v=3ykZYKCK7AM

【讨论】:

【参考方案5】:

我正在寻找类似的东西,我偶然发现了sharejs。希望这会有所帮助。

【讨论】:

以上是关于如何进行实时并发编辑?的主要内容,如果未能解决你的问题,请参考以下文章

开发实时图形编辑器

在 Django 中进行实时编辑

使用Sublime Text 3进行Markdown编辑+实时预览

如何从 Fedora 实时会话编辑 /etc/fstab?

如何制作实时可编辑表格?

如何在网站上添加实时代码编辑器? [关闭]