用于并发更新的Google差异匹配补丁

时间:2018-05-21 08:12:58

标签: javascript google-diff-match-patch

所以,我的应用程序中有一个谷歌文档类型功能,可以由多个用户同时编辑。 当只有一个用户更新文档时,Diff-match-patch可以正常使用。

但是当我们说用户已经更新了doc并且它没有传递给user2时(由于套接字错误或网络错误),它会生成错误的数据。

例如 - '堆栈溢出是55666。'是我的文档,由多个用户编辑。 现在,user1将其更改为'Stack overflow is 6.'

并计算diff并将其发送到服务器,但在此之前user2已将其更改为其他内容,例如'Stack overflow is 25552.'。 现在,当应用补丁(来自user1)时,它会产生错误的结果 'Stack overflow is 252.'

那么如何管理它以实现并发更新?我可以使用Socket,这样如果其他人更改,我会将更改发送给其他用户,以便他们可以拥有最新的更新数据,但如果更改很多,则UX可能会很糟糕,因为其他用户可能会看到随机更改。

0 个答案:

没有答案