[]
        
(Showing Draft Content)

js-collaboration-presence

js-collaboration-presence は、リアルタイムの共同編集向けに js-collaboration をベースとして構築されたプラグインであり、ユーザーのプレゼンス状態管理と状態共有の機能を提供します。クライアント側(js-collaboration-presence-client)とサーバー側(js-collaboration-presence)に分かれています。

  • クライアント側(Presence): ローカルユーザーの状態を取得してサーバーに送信し、他のユーザーの状態を受信します。

  • サーバー側(presenceFeature): すべてのクライアントの状態をブロードキャストして調整し、コラボレーションルーム内での状態データの整合性を確保します。

適用シナリオ

ユーザーのアクティビティ状態をリアルタイムで表示する必要があるシナリオに適しています。例えば、次のような場合です。

  • テキストドキュメント内の共同編集者のカーソル位置

  • スプレッドシート内の選択範囲

主な機能

リアルタイムのユーザー状態共有

  • 機能の説明: js-collaboration-presence は、ドキュメント内におけるクライアントのリアルタイムの位置情報を管理し、共有できます。この情報には、ユーザーのカーソル位置、選択範囲などが含まれ、他のユーザーはドキュメントの現在の共同編集状態をリアルタイムで把握できます。

  • 適用シナリオ

    • 複数ユーザーによる共同編集では、他のユーザーが編集している位置を明確に確認でき、重複編集や競合の発生を抑制できます。

    • スプレッドシートの共同編集では、他のユーザーが作業しているセルまたは範囲をリアルタイムで確認でき、作業の調整に役立ちます。

ユーザーイベントの監視と通知

overview

  • 機能の説明: js-collaboration-presence-client は、開発者がユーザー状態の変更をサブスクライブして監視できるようにし、ユーザーのプレゼンス状態が変化したときに特定のアクションを実行できるようにします。これらのイベントには、ユーザーの参加、退出、状態の更新(位置の更新、選択の変更など)が含まれます。

  • 適用シナリオ

    • 新しいユーザーがコラボレーション空間に参加したときに、インターフェイスを自動的に更新して、新しいユーザーのプレゼンス状態を表示できます。

    • ユーザーがプレゼンス状態(例: カーソル位置)を更新したときに、インターフェイスをリアルタイムで更新し、全ユーザーが一貫した情報を確認できるようにできます。

複数ユーザーによる共同編集のサポート

architecture1

  • 機能の説明: js-collaboration-presence は、js-collaboration および js-collaboration-ot とシームレスに統合して、完全なコラボレーションプラットフォームを構築します。js-collaboration が提供する双方向リンク、および js-collaboration-ot が提供するデータ同期と競合解決により、js-collaboration-presence はリアルタイムの共同編集環境で、ユーザーのプレゼンス状態を管理できます。

  • 適用シナリオ: 完全なコラボレーションプラットフォームでは、js-collaboration-presence がユーザーのプレゼンス状態管理を担当し、js-collaboration と js-collaboration-ot がデータ同期と整合性を担当します。これらが連携して、ユーザーにスムーズな共同編集体験を提供します。

制限

js-collaboration-presence は永続化をサポートしていません。Presence データはサーバーのメモリ内にのみ保持され、各ユーザーの最新の状態を保存します。

想定される影響

  • データ損失: サーバーが再起動した場合、またはクライアントが切断した場合、保存されているすべてのプレゼンス状態(ユーザーの位置や選択を含む)は失われます。

  • 永続ストレージなし: Presence はユーザー状態をディスクやデータベースに保存する機能を提供しないため、永続的なユーザー状態が必要なシナリオには適しません。

推奨される解決策

  • 定期バックアップ: Presence は組み込みの永続化をサポートしていませんが、メモリ内の状態情報を外部ストレージへ定期的にバックアップすることを検討できます。

  • 独自の永続化: 開発者は独自の永続化ロジックを実装し、ユーザー状態をデータベースに保存し、サーバー起動時にこれらの状態を復元できます。

次のステップ

js-collaboration-presence のコアコンセプトと API を習得します。

各トピックでは、サンプルコードを通して実践的な使用方法を示します。