Un éditeur de texte collaboratif en ligne basé sur l'approvisionnement en événements.
L'exemple de travail peut être trouvé ici: https://text-sourcing.tomasz-rewak.com/
Une description du projet plus longue peut être trouvée ici: https://blog.tomasz-rewak.com/text-sourcing/
Tout ici est écrit à partir de zéro: y compris l'éditeur de texte ainsi que la logique d'approvisionnement en événement sur le serveur et les côtés du client.
Cet éditeur de texte permet à plusieurs personnes de modifier le même fichier texte en même temps. Tous les utilisateurs doivent même être en mesure de modifier la même ligne sans aucune baisse d'entrée.
Cette application n'envoie pas l'intégralité du contenu du fichier entre les utilisateurs après chaque modification, mais plutôt des événements de base. Base sur ces événements et l'état initial du document chaque client devrait être en mesure de recréer l'état actuel du document. La gestion des événements n'est pas seulement limitée aux simples transformations de l'État. L'historique des événements est également utilisé pour les opérations d'annulation / réévaluation. L'ordre des événements est synchronisé en fonction de l'horloge interne du serveur afin que l'impact du retard de communication puisse être neutralisé.
Ce projet est créé à l'aide de JavaScript, Socket.io (pour la communication Clinet-Server) et React (un cadre frontal).
C'est juste une démo que j'ai créée en tant que projet pour animaux de compagnie. Mais si vous avez trouvé des bugs, faites-le moi savoir.