当前位置:  开发笔记 > 编程语言 > 正文

运营转型库?

如何解决《运营转型库?》经验,为你挑选了5个好方法。

我正在寻找一个允许我在多个用户之间实时同步文本的库(ala Google Docs).

我偶然发现了运营转型,这似乎符合我的需求.话虽如此,我理解OT的要点,但不理解OT的数学和实现.

因此,我想知道是否有一个拖放到文本区域的拖放Javascript库,生成转换,然后允许我将这些转换应用到另一个客户端?

(我已经获得了Etherpad源代码,但我无法做出正面或反面.如果有人能指出如何利用Etherpad的OT实现,那也会很棒!)



1> Jörg W Mitta..:

我认为Google Wave的OT实现部分是开源的(还有更多部分即将推出).

我不确定这是否是您正在寻找的,但OT的另一种选择是差异同步:

Google-Diff-Match-Patch - 纯文本的Diff,Match和Patch库:" Diff Match和Patch库提供了强大的算法来执行同步纯文本所需的操作. "

Google-MobWrite - 实时同步和协作服务:" MobWrite将表单和Web应用程序转换为协作环境.创建一个简单的单用户系统,添加一行JavaScript,并立即获得协作系统. "(使用Google-Diff -match贴片.)


Diff-Match-Patch与Neil Frasier的差异同步文件(http://neil.fraser.name/writing/sync/)结合使用!非常感谢指出我正确的方向.
这是旧的,但如果你介意,我有开源https://github.com/benjamine/JsonDiffPatch它使用Neil的Diff-Match-Patch长字符串,但它适用于arbritrary js对象图
实际上,Google-Diff-Match-Patch旨在实现操作转换的替代方法,即差异同步,以了解您可以阅读DS的Neil Fraser文档的差异:http://neil.fraser.name/writing/sync /(OT在本文档中称为事件传递).它们是两种截然不同的方法.

2> hawkeye..:

其中一位前浪潮工程师发布了名为ShareJS的协同编辑算法的Coffeescript实现,现在命名为ShareDB.



3> dmonad..:

我将总结我找到的解决方案.

运营转型:例如

Google Wave OT.该方法基于所谓的木星方法.

ShareJs.基于与Google Wave OT相同的OT算法.

Coweb-jsoe.基于COT - 一种非常复杂的OT方法,也支持p2p消息传播.

OpenCoweb.它利用OpenCoweb-jsoe为大量类似问题提供完整的框架.

OT.js基于ShareJs的操作类型.

DriveSDK.一个非常有趣的API,可以做很多事情 - 例如图表上的协作.

SwellRT是Apache Wave的一个分支.是联合的,并支持富文本.

差异同步:

来自Neil Fraser的Diff-Match-Patch.

MobWrite利用Diff-Match-Patch算法.

CRDT(交换复制数据类型):

有许多不同的CRDT算法允许实现共享类型.一些CRDT与P2P消息传播一起工作,一些CRDT依赖于客户端 - 服务器模型

Yjs允许您共享任意数据类型(RichText,Array,Hash Maps,.. extendable).对P2P通信协议的离线支持和支持(有XMPP,Websockets和WebRTC的模块)

SwarmJS客户端服务器共享数据库,具有脱机支持.适用于React

Woot Woot CRDT的实现

CRDT另一个CRDT实现

Automerge



4> 小智..:

OT图书馆:

https://github.com/sveith/jinfinote

https://github.com/jvanveen/py-infinote

在HWIOS websocket项目中,我成功地使用了两者的组合(服务器端的py-infinote,客户端的jinfinote)来同步文档状态.



5> Jarnal..:

ot.js库 https://github.com/Operational-Transformation/ot.js可能对多用户场景很有用.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有