Un editor de texto colaborativo en línea basado en el abastecimiento de eventos.
Se puede encontrar un ejemplo de trabajo aquí: https://text-sourcing.tomasz-rewak.com/
Aquí se puede encontrar una descripción más larga del proyecto: https://blog.tomasz-rewak.com/text-sourcing/
Todo aquí está escrito desde un rasguño: incluido el editor de texto y la lógica de abastecimiento de eventos en el servidor y los lados del cliente.
Este editor de texto permite a varias personas editar el mismo archivo de texto al mismo tiempo. Todos los usuarios deben incluso poder editar la misma línea sin ninguna caída de entrada.
Esta aplicación no envía el contenido completo del archivo entre usuarios después de que se realice cada cambio, sino solo eventos básicos. Base en esos eventos y el estado inicial del documento que cada cliente debería poder recrear el estado actual del documento. La gestión de eventos no solo se limita a transformaciones estatales simples. El historial de eventos también se usa para operaciones de deshacer/rehacer. El orden de los eventos se sincroniza en función del reloj interno del servidor para que el impacto del retraso de la comunicación pueda neutralizarse.
Este proyecto se crea utilizando JavaScript, Socket.io (para la comunicación Clinet-Server) y React (un marco frontend).
Es solo una demostración que he creado como proyecto de mascotas. Pero si ha encontrado algún error, por favor, hágamelo saber.