La Transformation opérationnelle de la bibliothèque?
Je suis à la recherche d'une bibliothèque qui me permettrait de synchroniser le texte en temps réel entre plusieurs utilisateurs (ala Google Docs).
J'ai trébuché sur la Transformation Opérationnelle, ce qui semble correspondre à mes besoins. Cela dit, je peux comprendre l'essentiel de l'OT, mais pas les maths, ni la mise en œuvre de l'OT.
Donc, je me demandais si il y avait un drag'n'drop bibliothèque Javascript qui serait crochet dans une zone de texte, de générer les transformations, permettez-moi de vous appliquer ces transformations sur un autre client?
(J'ai obtenu la Etherpad source, mais je ne peux pas faire la tête ou de la queue hors de lui. Si quelqu'un pouvait montrer comment l'effet de levier sur Etherpad de l'OT de la mise en œuvre, ça va être génial aussi!)
Vous devez vous connecter pour publier un commentaire.
Je pense que certaines parties de Google Wave OT de mise en œuvre sont Open Source (et de plus en plus de pièces sont à venir).
Je ne suis pas sûr si c'est ce que vous cherchez, mais une alternative à l'OT est Différentiel De Synchronisation:
L'un des ex-Onde ingénieurs a publié un Coffeescript mise en œuvre de son édition collaborative algorithme appelé ShareJS, maintenant nommé ShareDB.
Je vais résumer les solutions que j'ai trouvées.
La Transformation opérationnelle: E. g.
Différentiel De Synchronisation:
CRDT (Commutative Répliqué Type De Données):
OT Bibliothèques:
Dans le HWIOS websocket projet, j'ai utilisé avec succès un mixte des deux(py-infinote à la serverside, jinfinote à côté client) pour une synchronisation précise.
L'ot.js bibliothèque https://github.com/Operational-Transformation/ot.js peut être utile pour les scénarios multi-utilisateur.
https://github.com/opencoweb/coweb
Clé en main, ou "glisser-déposer" des solutions à ce problème n'ont pas vraiment existé en raison de la complexité de manière fiable la synchronisation partagé mutable état. dmonad la réponse est un décent roundup, et j'ai posté une plus up-to-date aperçu des solutions ici.
Cette question est assez vieux, mais La Convergence (disclaimer: je suis l'un des fondateurs) qui offre le plus de solution clé en main, là, en fournissant non seulement la synchronisation des données, mais une foule d'autres Api utile pour la création d'une collaboration UX. Voici un exemple montrant exactement ce que vous avez demandé: synchronisation d'un champ de texte à travers de multiples clients.
Sinon, ShareDB est une excellente solution open-source qui correspond à un grand nombre de besoins de la population.
Également de vérifier ces Bibliothèques Javascript:
Avec un js client lib (Strophe.js) vous pouvez utiliser gratuitement un serveur XMPP (comme jabber.org) ainsi que de mon côté client OT lib (JSOTTEST) pour construire un système client-serveur.
Je vais soumettre le src d'une démo client-serveur de système de chat quand j'ai le temps de réviser le code.
Mnp a quelques belles ot bibliothèques pour node.js:
Vous pourriez parler aux gars au Cedanet. Si Ceda est closed source et pas de version d'essai gratuite est disponible sur leur site web. J'ai été impliqué dans le développement de la Ceda et de continuer à travailler avec elle dans des projets commerciaux, de sorte que je pourrais être en mesure de fournir des commentaires/conseils si vous allez dans cette voie.
J'chose etherpad.org avec etherpad lite est supérieure à d'autres solutions.
Nous construisons un collaborer de l'éditeur qui combine à la Transformation Opérationnelle, avec la gestion des versions. Ce qui nous permet de soutenir à la fois en ligne et hors ligne collab. Nous avons publié notre propre OT de la bibliothèque hier, dans le cadre de notre pile open source.
http://interior.substance.io/modules/operator.html
Nous avons également contribué à une bibliothèque pour la gestion des versions.
http://interior.substance.io/modules/chronicle.html
J'ai écrit un petit unixy (faire une chose et le faire bien) bibliothèque qui implémente un OT de contrôle de la couche, vous permettant de brancher différents OT types (prend en charge tous les shareJS conforme types).
Il est similaire à la shareJS mais moins opiniâtre et plus abstrait.
https://github.com/marcelklehr/gulf