Um editor de texto colaborativo online com base no fornecimento de eventos.
Exemplo de trabalho pode ser encontrado aqui: https://text-sourcing.tomasz-rewak.com/
Uma descrição mais longa do projeto pode ser encontrada aqui: https://blog.tomasz-rewak.com/text-sourcing/
Tudo aqui está escrito a partir de um arranhão: incluindo o editor de texto, bem como a lógica de fornecimento de eventos no servidor e nos lados do cliente.
Este editor de texto permite que várias pessoas editem o mesmo arquivo de texto ao mesmo tempo. Todos os usuários devem ser capazes de editar a mesma linha sem quedas de entrada.
Este aplicativo não envia o conteúdo inteiro do arquivo entre os usuários após a alteração for feita, mas apenas eventos básicos. Base nesses eventos e no estado inicial do documento, cada cliente deve ser capaz de recriar o estado atual do documento. O gerenciamento de eventos não se limita apenas a transformações simples do estado. O histórico de eventos também é usado para operações de desfazer/refazer. A ordem dos eventos é sincronizada com base no relógio interno do servidor, para que o impacto do atraso da comunicação possa ser neutralizado.
Este projeto é criado usando JavaScript, Socket.io (para a Comunicação do Servidor da CLILET-SERVER) e REACT (uma estrutura de front-end).
É apenas uma demonstração que eu criei como um projeto de estimação. Mas se você encontrou algum bug, por favor, me avise.