Онлайн -совместный текстовый редактор на основе поиска событий.
Рабочий пример можно найти здесь: https://text-sourcing.tomasz-rewak.com/
Более длинное описание проекта можно найти здесь: https://blog.tomasz-rewak.com/text-sourcing/
Все здесь написано с царапины: включая текстовый редактор, а также логику поиска событий на сервере и сторонах клиента.
Этот текстовый редактор позволяет нескольким людям редактировать один и тот же текстовый файл одновременно. Все пользователи должны даже иметь возможность редактировать одну и ту же строку без каких -либо входных падений.
Это приложение не отправляет весь содержимое файла между пользователями после каждого изменения, а скорее просто основные события. База на этих событиях и начальном состоянии документа Каждый клиент должен иметь возможность воссоздать текущее состояние документа. Управление событиями не ограничивается простыми преобразованием состояния. История событий также используется для операций с отменой/повторным. Порядок событий синхронизирован на основе внутренних часов сервера, так что влияние задержки связи может быть нейтрализовано.
Этот проект создается с использованием JavaScript, Socket.io (для связи Clinet-Server) и React (Frontend Framework).
Это просто демонстрация, которую я создал в качестве домашнего проекта. Но если вы нашли какие -либо ошибки, пожалуйста, дайте мне знать.