Witam,
mam zadanie zrobić edytor tekstu, który umożliwi modyfikowanie tekstu przez x osób. Jak podejść do takiego zadania? Głównym problemem jest zrobienie tej całej współpracy. Jak przesyłać informacje, że dany fragment edytowała osoba y, czy zaznaczanie tekstu było widoczne u wszystkich edytujących osób?
To brzmi jak dość trudne zadanie. Nawet korzystając z gotowych kontrolek do rich tekstu, musiałbyś opracować jakiś protokół synchronizacji danych (p2p czy serwer-klient?) i go zaimplementować. Masz takie zadanie gdzieś? Bo jak nie to lepiej jakieś google docs użyć i niespecjalnie w C++ bym to pisał, chyba że masz duży zespół ludzi dostępny.
kq napisał(a):
To brzmi jak dość trudne zadanie. Nawet korzystając z gotowych kontrolek do rich tekstu, musiałbyś opracować jakiś protokół synchronizacji danych (p2p czy serwer-klient?) i go zaimplementować. Masz takie zadanie gdzieś? Bo jak nie to lepiej jakieś google docs użyć i niespecjalnie w C++ bym to pisał, chyba że masz duży zespół ludzi dostępny.
A jak by taki protokół synchronizacji wyglądał by - bo trochę nie widzę tego? (duży zespół xD = 2 osoby)
na youtube są jakieś talki o tym:
można poszukać i w innych miejscach: https://www.quora.com/How-do-I-proceed-to-build-a-real-time-collaborative-text-editor-from-scratch
w sumie ja bym pierwsze co zrobił, to przeszukał istniejące zasoby internetu, łącznie ze źródłami tego typu narzędzi (wszystko jedno w jakim języku programowania).
Ja bym zrobił tak
Klienci wysyłają eventy do serwera (każda akcja to jeden event, można pozbierać eventy. Event uruchamia odpowiednią funkcje na serwerze. W evencie jest zawarte kto zmienił i co zmienił.
Serwer zmienia plik / pamięć w locie i wyświetla (więc nic nie wysyłasz do klientów)
Na serwerze zrobiłbym jakis kontener asynchroniczny i zrobilbym tam FIFO
Udało mi się zrobić "coś" co działa ;) . Zostawiam linka jak ktoś chciałby np. zobaczyć jak zacząć swój projekt takiego edytora itd.
source
A takich rzeczy nie robi się w pare h w pythonie?