rohith naik Ответов: 2

Как сделать текстовое поле, которое работает как Google docs, которое может быть отредактировано несколькими пользователями одновременно?


В принципе, я хочу, чтобы несколько приложений WPF имели общее текстовое поле, в которое пользователи могут редактировать текст в режиме реального времени, и оно будет отражаться во всех текстовых полях одновременно. Я просто ищу некоторые идеи относительно того, что можно сделать, или любые другие проекты, которые реализуют что-то подобное.

Что я уже пробовал:

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

2 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Вы уже ответили на свой вопрос своими словами:

Цитата:
там будет сервер, который имеет экземпляр и получает сообщения от всех текстовых полей к тому, что редактируется. Таким образом, я также могу отправлять сообщения с сервера относительно положения курсоров в других приложениях и даже вводить текст, если это необходимо, и разрешать любые конфликты.
Вам нужно закодировать это. WPF обеспечивает управление клавиатурой только одним курсором, поэтому вам также нужно будет абстрагировать прямое управление событиями клавиатуры и мыши. Смотрите эту тему для получения дополнительной информации об этом, Совместное приложение WPF - несколько клавиатур и мышей - переполнение стека[^], но это не невозможно. Просто очень трудно и тяжело это сделать.

Если бы мне пришлось это сделать, я бы начал с одного пользователя, редактирующего документ, и центрального сервера, обрабатывающего события редактирования и выполняющего эти действия над центральным документом. Затем, начиная с этого момента, увеличьте количество пользователей один за другим до 5-10. Обычный редактор документов обеспечивает поддержку для ограниченного числа пользователей, поскольку вам необходимо заблокировать документ или обеспечить параллельный доступ. Как уже упоминалось в решении 1, для этого потребуется полная статья/проект, чтобы объяснить, как это будет работать в WPF, QA не подходит для этого. Попробуйте найти статью в правом верхнем углу.

Проверьте и это тоже, Совместное редактирование - Википедия[^]


Рейтинг:
0

MadMyche

Ответа не последовало... но я думаю, что было бы настоящей болью в заднице, если бы кто-то печатал в том же документе, что и я одновременно...

Возможно, Вам было бы лучше иметь экран "совместная работа", где у пользователя есть своя версия документа для редактирования и есть другие дисплеи, чтобы увидеть версию в реальном времени того, что сделал сотрудник(ы).

Один из способов сделать это-привязать отдельные текстовые поля к БД и обновить поле БД на чем-то похожем на событие "onchange"