Отправка разницы часто обновляемых (потенциально больших данных) текстовых данных от клиента к серверу для обновления - PullRequest
0 голосов
/ 13 июля 2020

Я ищу средство надежного обновления серверной копии некоторого текста на основе дифференциала текста, измененного на клиенте. Это сделано для уменьшения размера полезной нагрузки для каждого обновления. Для контекста мой клиент записан в JavaScript, с. NET / C# на сервере.

Данные представляют собой большой кусок текста, который может обновляться пару раз в секунду как пользователь. изменяет текст.

Я нашел эту библиотеку Google diff / match / patch , и она охватывает многое из того, что мне нужно, но мне нужно учитывать возможность неудачных обновлений, приводящих к клиентская и серверная копии данных перестают синхронизироваться c (в этот момент патчи могут выйти из строя или стать ненадежными).

Я подумываю записать ха sh текста до для модификации как на клиенте, так и на сервере. Затем сервер применит патч только в том случае, если клиент ha sh предыдущего значения текста совпадает с серверами ha sh предыдущего значения. В случае, если хэши не совпадают, сервер отвечает клиенту, запрашивая полный текст.

Я чувствую, что могу изобретать колесо здесь. Есть ли прецедент или образец такого поведения, о которых я не знаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...