# 协同编辑
实时协同编辑 与 非实时协同编辑
# 实时通信
P2P概念 、 C/S方式
通信协议:双向通信 websocket
# 通信内容:基于状态同步
useCollabState useCollabRef
同步实例 excalidraw (opens new window)
- 数据模型-数组 元素删除非真删除
 - 元素版本号
 - versionNonce字段
 - 生成version时随机生成
 - 同时更改时,比较versionNonce
 - 传输量大
 - 难处理
 
# 基于操作
同步指令
# 问题
保证文档一致性:
- 段落锁
 - OT算法
 
- 菱形图
 - 操作合并
 - OT(a,b) = (a',b')
 - 协同调度协议 --- 基本语句
 - 通用调度协议 OT Generic OT
 - 基于上下文协同调度 Context-based OT
 - OT算法复杂度
 - 时间复杂度O(M * N)
 
# 后端数据库基于JSON
shareDB 数据库
https://github.com/ottypes/json0 (opens new window)
# 文档
# 表格
handsontable (opens new window)