Как сделать живое параллельное редактирование? - PullRequest
8 голосов
/ 22 сентября 2009

Я пытаюсь создать приложение rails, которое в основном представляет собой текстовый редактор (с некоторыми дополнительными функциями, которые я не могу найти где-либо еще - именно поэтому я его создаю)

Одной из основных функций является параллельное редактирование в реальном времени или совместное редактирование в реальном времени (как бы вы это ни называли).

Пока что я настроил сайт с плагином Джаггернаут . Это дает мне возможность отправлять любой клиентский Javascript с клиента или с сервера. Поэтому, когда кто-то что-то печатает, я могу отправить то, что этот человек напечатал, каждому другому клиенту, при этом другие клиенты не должны опрашивать сервер.

Проблема, с которой я столкнулся, сводится к тому, что я не знаю, какой алгоритм использовать для разрешения конфликтов, и делаю это наилучшим из возможных способов. Я немного прочитал о Оперативное преобразование , но просто не знаю, как разумно реализовать его с помощью Javascript / Rails-решения, которое у меня сейчас есть.

Я хочу что-то вроде OT, но не знаю, как это реализовать и не знаю, с чего начать. Любая помощь в том, как это осуществить, была бы очень счастлива!

Ответы [ 5 ]

4 голосов
/ 22 сентября 2009

Я думаю, что Google имеет (или скоро выпустит) ОТ логику Wave как открытый исходный код.

Возможно, проверьте Wave Protocol Проект с открытым исходным кодом.

4 голосов
/ 22 сентября 2009

Взгляните на MobWrite

0 голосов
/ 27 июня 2014

Я искал что-то подобное и наткнулся на sharejs . Надеюсь, это поможет.

0 голосов
/ 22 сентября 2009

Хотя это не полный ответ, у вас может быть очень интересное понимание того, как Google Wave делает это здесь:

http://www.youtube.com/watch?v=3ykZYKCK7AM

0 голосов
/ 22 сентября 2009

Вы видели Беспин от Mozilla? Для вдохновения я имею в виду - я понимаю, что вы используете Rails.

...