Сотрудничество в реальном времени с CodeMirror

Я начал этот маленький проект, где я в реальном времени работал над кодом, используя CodeMirror.

У меня есть система настройки MSGS, так что легко передавать объекты от одного пользователя другому. Моя проблема заключается в интеграции его с CodeMirror. Я обнаружил, что у него есть события для onchange и replaceRange (string, from, to).

Я передаю объекты onchange другим пользователям и использую replaceRange для обновления представления. Проблема заключается в том, что при использовании replaceRange он запускает новый onchange и отправляет сообщения назад и вперед. Кто-нибудь знает, есть ли какой-нибудь способ обновить локальное представление без запуска onchange. Или предложения для других путей. (система msgs уже настроена, и ее легко передавать объекты javascript другим клиентам).

2 ответа

Решение

Чтобы это работало правильно, вам также нужно объединить изменения. Смотрите http://ot.substance.io/ для демонстрации решения с открытым исходным кодом (также с использованием CodeMirror).

Вы можете использовать Firepad

FirePad - это плагин для совместной работы в реальном времени с открытым исходным кодом (на GitHub) для codemirror. Вы можете настроить его с помощью codemirror за 4 дополнительные строки кода и за несколько минут. Он использует Firebase для бэкэнда.

Другие вопросы по тегам