3

リアルタイムコラボレーションであるGoogleDocsの機能を、HTMLの編集可能なテキストエリアに追加しようとしています。たとえば、これにより、2人または3人のユーザーが同じテキストエリアを共同で編集できるようになります。この問題にどのように取り組むのでしょうか、または使用できるJavaScriptライブラリがありますか?(私はPHP、mySQL、およびJavaScript / AJAX / jQueryを使用しています)。

4

1 に答える 1

10

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

textareaを最新の状態に保つには、3つのクライアントすべてからサーバーへの長期間有効なHTTP接続またはWebsocket接続を確立する必要があります。各テキストエリアには、キーアップまたはキープレスハンドラーが必要です。これらのハンドラーは、呼び出されると、ストリームを介してサーバーに文字を送信します。サーバーがこのデータを取得すると、接続されている他の2つのクライアントに応答を返す必要があります。

次に、textareaのvalueプロパティを最新のデータで更新することにより、応答を処理する必要があります。

PHPを使用しているようですが、これは彗星をサポートしていると思います。このようなソリューションを実装するには、comet(またはWebsocket)をセットアップする必要があります。

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

3つのクライアントの場合、これは実行可能かもしれませんが、頻繁に使用する深刻なアプリケーションの場合は、WebsocketまたはCometを確認することをお勧めします。

JavaScriptライブラリに関する質問に答えるには、クライアント側のCometソリューションについてDojoCometdライブラリを確認してください。

于 2012-05-08T00:16:01.023 に答える