Совместное редактирование

Координируйте параллельные изменения через OT, HTTP, WebSocket и постоянное хранение.

Пользователи и подключённые агенты работают с одним документом. Изменения сначала применяются локально, затем сервер подтверждает порядок и рассылает их, сочетая быстрый отклик с итоговой согласованностью.

Параллельная работа и конфликты

Univer использует OT — операционное преобразование. Клиент группирует операции в changeset; сервер преобразует их относительно подтверждённых revision. Если Alice изменяет C2, а Bob вставляет столбец перед B, изменение перемещается вместе с ячейкой в D2. Отмена и повтор также учитывают удалённые операции, но не решают все бизнес-конфликты.

Невозможность преобразовать или применить операцию блокирует редактирование документа. CollaborationConflict передаёт причину и неподтверждённые локальные изменения. Сохраните их перед перезагрузкой. См. восстановление и устройство OT.

Каналы и переподключение

КаналНазначение
HTTPПолучение снимков и изменений, Session Ticket, отправка changeset.
WebSocketSession и Room; ACK, удалённые изменения и Presence.

Одноразовый Ticket открывает соединение, затем клиент входит в Room документа. Presence передаёт участников, курсоры и выделения. Соединение или успешный HTTP-запрос не подтверждает сохранение. Учитывайте ACK, состояние совместной работы и ожидающие изменения.

При разрыве сохраняйте неподтверждённые изменения. После подключения получите недостающие revision и повторите отправку. Сервер устраняет дубликаты по идентификатору отправки. См. синхронизацию и Presence.

Хранение и снимки

Сервис хранит подтверждённые changeset и revision, создавая снимки по политике. Загрузка восстанавливает снимок и последующие изменения; создавать снимок после каждого ввода не требуется. Расчёт описан в Headless и серверных вычислениях. История, комментарии и Worktree — отдельные расширения.

Развёртывание

100%
  • Один узел: соберите Transport, Endpoint, Service и Database Adapter в Node.js. Memory подходит для временной проверки, SQLite — для локальной и небольшой нагрузки. Другие БД подключаются адаптерами приложения.
  • Масштабирование: кроме общего хранилища нужны межузловая рассылка, Presence, проверка Ticket и согласованность записи. Одних дополнительных процессов недостаточно; следуйте схеме своей версии.
  • Тяжёлые задачи: вынесите ресурсоёмкое преобразование файлов отдельно.

См. модули, развёртывание и пример нескольких узлов.

Производительность и ёмкость

Тесты и показатели текущей версии ещё не опубликованы. Они зависят от документов, частоты, участников и среды. Измеряйте подтверждение отправки, удалённое отображение, changeset в секунду, объём рассылки и память.

Подключение и охват

Начните с обзора и примера двух браузеров. Подключите идентификацию и права через Middleware, выберите постоянный Database Adapter и проверьте сохранение после перезапуска.

Ядро поддерживает Sheet, Doc, Slide, Canvases и Relational Table, не PDF. Идентификацию, авторизацию, файлы и политику хранения обеспечивает приложение.

Ко всем возможностям

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.