2012-05-08 15 views
2

リアルタイムのコラボレーションであるGoogle Docsが持つ機能をHTMLの編集可能なテキストエリアに追加しようとしています。たとえば、2人または3人のユーザーが同じテキストエリアを共同編集することができます。どのようにこの問題に近づくか、または使用できるJavaScriptライブラリがありますか? (私はPHP、mySQL、JavaScript/AJAX/jQueryを使用しています)。Googleドキュメントのようにリアルタイムフォーム編集を実装する方法

答えて

9

複数のWebクライアント間のリアルタイム更新を容易にするには、CometまたはWebsocketsソリューションを使用してWebの要求/応答サイクルを活用する技術を使用する必要があります。

テキストエリアを更新したままにするには、3つのすべてのクライアントからサーバーへの長期接続HTTP接続またはWebsocket接続を確立する必要があります。各テキストエリアには、起動時に文字をストリームに送信してサーバーに送るキーアップまたはキー押しハンドラが必要です。サーバーがこのデータを取得すると、接続されている他の2つのクライアントに応答を返す必要があります。

テキストエリアのvalueプロパティを最新のデータで更新することで、レスポンスを処理する必要があります。

私はあなたが彗星をサポートしていることを知っているPHPを使用して参照してください参照してください。このようなソリューションを実装するには、コメット(またはWebSocket)をセットアップする必要があります。

このように、より基本的な方法は、ポーリングを使用して目的の効果を達成することです。これには、3つのクライアントすべてが定期的にサーバーに要求を出して更新を取得する必要があります。あなたが想像しているように、ポーリングレートが速いほど、アプリケーションが感じるリアルタイム性がより高くなります。ただし、ポーリングレートが速くなれば、アプリケーションはより多くの帯域幅とリソースを消費します。

3人のクライアントではこれが可能かもしれませんが、重度の使用を伴う重大なアプリケーションでは、確実にWebsocketまたはCometを調べることをお勧めします。

JavaScriptライブラリの質問に答えるには、Dojo Cometdライブラリでクライアント側のCometソリューションをチェックしてください。

+0

++非常に綺麗で、良い説明です。 – Jack

+0

WebSocketで読んでいただきありがとうございます – cppit

関連する問題