2015-03-16 3 views
0

Я хотел бы иметь совместный редактор в режиме реального времени (аналогичный Google Docs). Мне удалось реализовать это: https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Meteor,-WebSocket-and-Long-Polling.Редактор совместной работы в режиме реального времени с Atmosphere

Так что теперь я могу отправить текст между двумя клиентами. Но у меня есть некоторые трудности, чтобы понять, как управлять совместным документом/редактором.

Я читал об операционных преобразованиях. Так что вы думаете о следующей установке:

Есть три клиента: Client A, B Клиент, Клиент C

Все три соединены через WebSockets. Все изменения отправляются в API (это будет полный json-объект). Клиенты получают объект json и в соответствии с этим они вставляют/удаляют/обновляют контент. На данный момент ничего не сохраняется в базе данных. Моим самым простым способом было бы то, что только клиент A (он доминирует) сохраняет базу данных при каждом изменении (включая изменения от других клиентов). С помощью этого решения мне не нужно было бы внедрять OT на уровне API. Если Клиент А уйдет, другой Клиент получит доминирование и сохранит его в базе данных.

Моя единственная проблема прямо сейчас в том, что нет (на мой взгляд) простого решения для обработки ОТ между клиентами.

Есть ли у вас какие-либо предложения? Разве это решение имеет смысл или это просто дерьмо?

Мои Techstack до сих пор:

Backbone/JQuery

MySQL

Java Servlet/Tomcat 7 (Jetty лучше с WS - будет реализовывать это позже)

Было бы здорово, если бы он соответствует этому стопу;)

Лучшее Fabian

ответ

0

Хорошо, поэтому я как бы решил это сам. Там есть отличный проект, называемый webstrate. Если вы хотите выполнять редактирование в режиме реального времени в реальном времени, вы должны это проверить.

Лучшие Fabian

+0

К сожалению, я просто понял, ваш бэкенд является Java. Тогда вы можете посмотреть [Cettia] (http://cettia.io/projects/cettia-java-server/1.0.0-Alpha1/). –