
向万能的 v 友请教一下,如何实现在线协作编辑文档例如 figma 、墨刀这种功能设计,目前找了一个开源的 etherpad-lite ,想讨论一下是否有其他选择
1 GPLer 2022 年 11 月 28 日 via Android 可以参考下 am-editor https://editor.aomao.com/ |
2 codehz 2022 年 11 月 28 日 |
3 menghechina 2022 年 11 月 28 日 onlyoffice 了解一下 |
4 Huelse 2022 年 11 月 28 日 行锁+版本 |
5 zhuangzhuang1988 2022 年 11 月 28 日 |
6 looplj 2022 年 11 月 28 日 要实现业务需要找一下开源的,比如 share-js 什么,还有上面提到的一些。 要理解原理,基本都是使用 Operational Transformation 这种方式的,然后不同的实现可能解决冲突的算法不同。 Operational Transformation 基本思路也很直接,记录用户操作,然后将操作 apply 到一个文档上,返回 apply 的结果。 |
7 ksice OP @ZSeptember 嗯呢,好像流行的都是用的 ots 算法,但是感觉 ots 算法很复杂,figma 用的好像是 CRDTs 算法 |
9 ksice OP @zhuangzhuang1988 好的好的,谢谢我去研究一下看看 |
11 L1shen 2022 年 11 月 28 日 现在新的都是使用 CRDT 来实现协同编辑, yjs 的包装可以看下这个 https://syncedstore.org/docs/advanced/richtext Facebook 的 lexical 也支持使用 yjs 做协同 https://lexical.dev/docs/collaboration/react |
12 looplj 2022 年 11 月 28 日 CRDT 这么 6 ,直接在结构上解决冲突。 |
13 hamsterbase 2022 年 11 月 28 日 @codehz 这论文不错,之前看了好几遍把里面的数据结构都实现了。 |
14 ksice OP @ZSeptember 嗯嗯相对 ots ,crdts 简单一些 |
15 xieqiqiang00 2022 年 11 月 29 日 @menghechina #3 这个怎么感觉是硬抄 office |