Я ищу средство надежного обновления серверной копии некоторого текста на основе дифференциала текста, измененного на клиенте. Это сделано для уменьшения размера полезной нагрузки для каждого обновления. Для контекста мой клиент записан в JavaScript, с. NET / C# на сервере.
Данные представляют собой большой кусок текста, который может обновляться пару раз в секунду как пользователь. изменяет текст.
Я нашел эту библиотеку Google diff / match / patch , и она охватывает многое из того, что мне нужно, но мне нужно учитывать возможность неудачных обновлений, приводящих к клиентская и серверная копии данных перестают синхронизироваться c (в этот момент патчи могут выйти из строя или стать ненадежными).
Я подумываю записать ха sh текста до для модификации как на клиенте, так и на сервере. Затем сервер применит патч только в том случае, если клиент ha sh предыдущего значения текста совпадает с серверами ha sh предыдущего значения. В случае, если хэши не совпадают, сервер отвечает клиенту, запрашивая полный текст.
Я чувствую, что могу изобретать колесо здесь. Есть ли прецедент или образец такого поведения, о которых я не знаю?