【问题标题】:Implementing a generic real time collaborative editor/plugin (Like Google Docs)实现通用的实时协作编辑器/插件(如 Google Docs)
【发布时间】:2012-02-23 07:03:29
【问题描述】:

所以,我正在考虑实现一个实时协作编辑器,因为一些预制的(例如 etherpad)缺乏专用编辑器的功能。

我目前使用CKEditor,但希望切换到Aloha Editor

我将使用 Pusher 推送通知/更新到我的应用程序周围的位置,以便在多人使用该软件时,一切都尽可能实时。

现在,最初我对如何实现协作编辑器的思考过程似乎真的很慢 - 使用推送器不断交换整个文本字段......但是移动巨大的文本块会变得非常难看,而且我当有多个 (> 5 ) 人同时处理文本时,我不确定该怎么做。所以...必须有一种更简单、更高效的网络方式来进行协作编辑。

想法?

【问题讨论】:

  • 在实现上并不是很多(我还没有真正找到任何细节)。只是现有的编辑。
  • 也许做一些背景调查,然后你可以问一个比“我该怎么做”更具体的问题?
  • 好吧,从@Sergio Tulentsev 的回答来看,我想我需要为 CKEditor 或 Aloha 编写一个插件,该插件与 Pusher 集成以实现智能增量......并在某些情况下计算偏移量每个编辑器的位置,直到进行更新。
  • 是的,这是一个非常困难的问题,因此您需要使用现有的库/服务。这是我们整理的一篇文章,讨论了各种通用(意味着不绑定到任何特定的 UI 组件)解决方案:convergencelabs.com/realtime-collaboration-technology-guide

标签: javascript html collaborative-editing


【解决方案1】:

一个名为 Aloha-Wikdiocs 的 Aloha-Editor 实时协作插件在 2012 年 jQuery 大会上发布。它仍然是 alpha 版,但已经很好用了。

它不是开源的。实时协作作为可以与现有系统集成的服务提供。目前这项服务不收费。

website 上有一个演示和一些关于如何集成服务的文档。

【讨论】:

  • 你是我最好的新朋友o.o
  • @TheLindyHop,嗯,你得到了一个API Key并替换了示例代码中的相应值吗?我得到了适合我的示例:github.com/Aloha-Wikidocs/Example
  • @TheLindyHop,我可以在 Google Chrome 16.0.912.77 中使用它。你用的是什么版本?控制台有错误吗?
  • 没有错误,当我尝试连接到 facebook 时没有任何反应。
  • 尝试克隆 github 示例。不涉及 Facebook,它应该开箱即用。唯一要做的就是使用 API 密钥触摸文件。 github.com/Aloha-Wikidocs/Example
【解决方案2】:

将更改组合在一起并计算智能增量。

例如,用户按下键“h”、“e”、“l”、“l”、“o”。您的 javascript 将它们分组并向服务器报告:“用户 A 在位置 X 插入了文本 'hello'”。

你明白了。

【讨论】:

  • 是的。这种方法涉及很多数学。哇! =D
  • @TheLindyHop:这很令人兴奋,不是吗? :-)
  • 您是否碰巧知道一些协作引擎可以通过一些工作插入到不同的编辑器中?我的意思是,如果没有必要,我没有理由重新发明轮子。
  • @TheLindyHop:我完全赞成不重新发明轮子,但我不知道这些技术。作为用户,我对谷歌文档感到惊讶:-)
猜你喜欢
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2022-01-24
  • 1970-01-01
  • 2015-05-27
  • 1970-01-01
相关资源
最近更新 更多