Итак, в моем приложении есть функция типа документов Google, которая может редактироваться несколькими пользователями одновременно. Diff-match-patch отлично работает для меня, когда только один пользователь обновляет документ.
Но он генерирует неверные данные, когда, скажем, документ уже обновлен пользователем1 и не доставлен пользователю2(из-за ошибки сокета или ошибки сети).
Например - «Переполнение стека 55666.»мой документ, который редактируется несколькими пользователями.Теперь user1 меняет его на 'Stack overflow is 6.'
, вычисляет diff и отправляет его на сервер, но до этого user2 уже изменил его на что-то другое, скажем, 'Stack overflow is 25552.'
.Теперь, когда исправление (от пользователя 1) применено, оно дало неправильный результат, который может быть 'Stack overflow is 252.'
Так как мне управлять им для одновременного обновления?Я могу использовать Socket, чтобы, если кто-то изменился, я отправил это изменение другим пользователям, чтобы они могли получить последние обновленные данные, но если изменение много, UX может быть плохим, так как другие пользователи могут увидеть случайное изменение в представлении.