複数のユーザー間でテキストをリアルタイムで同期できるライブラリを探しています(Googleドキュメントも同様)。
私は運用上の変革につまずきました。これは私のニーズに合っているようです。そうは言っても、OTの要点は理解していますが、OTの数学や実装は理解していません。
したがって、テキストエリアにフックして変換を生成し、それらの変換を別のクライアントに適用できるドラッグアンドドロップJavascriptライブラリがあるのだろうかと思っていましたか?
(私はEtherpadのソースを入手しましたが、そこから頭や尻尾を作ることはできません。EtherpadのOT実装を活用する方法を誰かが指摘できれば、それも素晴らしいでしょう!)
Google WaveのOT実装の一部はオープンソースである(そしてさらに多くの部分が来ている)と思う。
これがあなたが探しているものかどうかはわかりませんが、OTの代わりに Differential Synchronization :
元Waveエンジニアの1人が、現在 ShareDB という名前のShareJSと呼ばれる共同編集アルゴリズムのCoffeescript実装をリリースしました。
私が見つけた解決策を要約します。
業務変革:例.
差分同期:
[〜#〜] crdt [〜#〜] (複製可能な複製データ型):
OTライブラリ:
HWIOS Websocketプロジェクト内で、ドキュメントの状態を同期するために両方(サーバー側のpy-infinote、クライアント側のjinfinote)のコンボをうまく使用しました。
Ot.jsライブラリ https://github.com/Operational-Transformation/ot.js は、マルチユーザーシナリオに役立つ場合があります。
この問題に対するターンキーまたは「ドラッグアンドドロップ」ソリューションは、共有された可変状態を確実に同期する複雑さのため、実際には存在していませんでした。 dmonadの回答はまともなまとめであり、利用可能なソリューションのより最新の概要を投稿しました here 。
この質問は非常に古いものですが、 Convergence (免責事項:私は創業者です)は、データ同期だけでなく、共同UXの構築に役立つ他のAPIのホストを提供する最もターンキーなソリューションを提供します。 ここに例があります あなたが要求したものを正確に示す:複数のクライアント間でのテキストフィールドの同期。
それ以外の場合、 ShareDB は、多くの人々のニーズに合う素晴らしいオープンソースのソリューションです。
Js client lib(Strophe.js)を使用すると、クライアントサイドOT lib(JSOTTEST)と一緒に無料のXMPPサーバー(Jabber.orgなど)を使用して完全なクライアントサーバーを構築できますシステム。
コードを修正する時間があるときに、デモクライアントサーバーチャットシステムのsrcを送信します。
Npmには、node.js用の素敵なotライブラリがいくつかあります。
これらのJavascriptライブラリもチェックしてください。
Cedanet でみんなと話すことができます。 Cedaはクローズドソースであり、Webサイトでは無料トライアルは利用できません。私はCedaの開発に携わっており、商用プロジェクトで引き続きCedaを使用しているので、この道を進むとフィードバック/アドバイスを提供できるかもしれません。
OTコントロール層を実装し、異なるOTタイプ( shareJSに準拠したすべてのタイプをサポートしています。shareJSに似ていますが、意見が少なく抽象的です。
オペレーショナルトランスフォーメーションとバージョニングを組み合わせたコラボレーションエディターを構築しています。そうすれば、オフラインとオンラインの両方のコラボレーションをサポートできます。昨日、オープンソーススタックの一部として、独自のOTライブラリをリリースしました。
http://interior.substance.io/modules/operator.html
また、バージョン管理用のライブラリも提供しました。
私は、etherpad.orgとetherpad liteが他のソリューションよりも優れていると思います。