Опять повторяю вы беспокоитесь за буквы, не беспокоясь за файлы. (в конце концов не ставьте курсор в одну строку (в конце концов можно поговорить об отображении курсоров других пользователей) )
Ну и пусть все обрабатывается серверной частью Marka (которая запускается первым пользователем -A, открывшим документ), в той последовательности в которой буквы приходять на сервер. Мало того когда серверная часть вернет результат, она должна вернуть актуальный результат на серверной части всем пользователям.
Кстати серверная часть должна передавать изменения а не весь файл. (Серверная часть должна быть активной и рассылать изменения всем редактирующим как только кто-то что-то вбил)
А вообще все значительно проще.
Раздели клавиатуру на 2 части 1 половину отдай одному пользователю другую другому
. Назнач какие-то клавиши на буквенной клавиатуре для пользователя B (чтоб он курсор перетаскивал). И подкоректируй редактор на эту тему.... скорость не больше 30символов в сек умноженному на кол-во пользователей не понадобится.
Запакованные исходники редактора, занимают уже 2МБ (ничего страшного).
По команде сохранения - сохранение файла происходит пользователем A
Ну и пусть все обрабатывается серверной частью Marka (которая запускается первым пользователем -A, открывшим документ), в той последовательности в которой буквы приходять на сервер. Мало того когда серверная часть вернет результат, она должна вернуть актуальный результат на серверной части всем пользователям.
Кстати серверная часть должна передавать изменения а не весь файл. (Серверная часть должна быть активной и рассылать изменения всем редактирующим как только кто-то что-то вбил)
А вообще все значительно проще.
Раздели клавиатуру на 2 части 1 половину отдай одному пользователю другую другому
. Назнач какие-то клавиши на буквенной клавиатуре для пользователя B (чтоб он курсор перетаскивал). И подкоректируй редактор на эту тему.... скорость не больше 30символов в сек умноженному на кол-во пользователей не понадобится.
Запакованные исходники редактора, занимают уже 2МБ (ничего страшного).
По команде сохранения - сохранение файла происходит пользователем A