所以,我的应用程序中有一个谷歌文档类型功能,可以由多个用户同时编辑。 当只有一个用户更新文档时,Diff-match-patch可以正常使用。
但是当我们说用户已经更新了doc并且它没有传递给user2时(由于套接字错误或网络错误),它会生成错误的数据。
例如 -
'堆栈溢出是55666。'是我的文档,由多个用户编辑。
现在,user1将其更改为'Stack overflow is 6.'
并计算diff并将其发送到服务器,但在此之前user2已将其更改为其他内容,例如'Stack overflow is 25552.'
。
现在,当应用补丁(来自user1)时,它会产生错误的结果
'Stack overflow is 252.'
那么如何管理它以实现并发更新?我可以使用Socket,这样如果其他人更改,我会将更改发送给其他用户,以便他们可以拥有最新的更新数据,但如果更改很多,则UX可能会很糟糕,因为其他用户可能会看到随机更改。