实时协作-01

November 07, 2017

最近在负责大象团队的创新业务,主打多人实时协作的文档,有富文本,Excel,脑图,流程图,markdown五种文档的需求。这类的业务其实在前端领域是比较复杂的,主要有两点

  1. 编辑器本身开发就很复杂
  2. 整个协作模型是很麻烦的一个东西,稍微不对整个协作结果就完全错了,这是不可以接受的。

针对编辑器我这主要开发的就是富文本,Excel 和 markdown 三个,另起文章来解释,除了总会发现 chrome 浏览器的 bug。主要说一下实时协作。

协作目前比较靠谱的方案有两种一种是Operational Transformation(后文简称OT),一种是CRDT。Google Doc应该是最开始大规模商业应用实时协作文档的,他们是基于OT研发的,所以后面市面上大部分的协作产品都是基于OT来开发的,这两个方式其实没有太大的区别,CRDT里也有基于Op的,不过CRDT在对等网络中比OT更合适。

OT整体来讲是需要一个中央服务器来做操作的定序的,中央服务器会将所有客户端的并发操作按照次序依次应用到文档(快照)上,其实和区块链的


目录