[]
        
(Showing Draft Content)

js-collaboration

js-collaboration は、クライアントとサーバー間のリアルタイムなデータ同期のための、低遅延かつ双方向通信を可能にするライブラリです。クライアント側(js-collaboration-client)とサーバー側(js-collaboration)に分かれています。

主な機能

  • 双方向接続: リアルタイムなデータ同期を保証する、クライアント/サーバー間の双方向通信を実現します。

  • ルーム: 組織的な複数ユーザーの連携のため、ルームのライフサイクル操作(作成/参加/退出)をサポートします。

  • ブロードキャスト: リアルタイム通知配信機能により、ルーム参加者全員へのメッセージ送信を可能にします。

  • ハートビートと自動再接続: ハートビート監視と自動再接続の仕組みにより、安定した接続を維持します。

  • ミドルウェアとフック:

    • ミドルウェアは、接続およびメッセージ処理のプロセス中にユーザー定義ロジックを挿入する仕組みを提供します。これによりユーザーはサーバーのパイプラインにフックして、認証や権限などを処理できます。

    • フックは、重要なイベントが発生したときにユーザー定義の処理ロジックをトリガーする仕組みを提供します。

ルームについて

初期化フェーズは、クライアントがサーバーとの WebSocket 接続を確立した時点で完了します。サーバーは、同時並行のクライアントセッションを管理するためにルームベースのアーキテクチャを採用しており、各ルームは分離された同期コンテキストを表します。共同作業中、サーバーはブロードキャストの仕組みを介して、同じルーム内の各クライアントにリアルタイムメッセージをブロードキャストします。ブロードキャストの詳細は、「メッセージの送受信」を参照してください。

overview-room

次のステップ

js-collaboration のコア概念と API を習得します。対象は次のとおりです。

  • クライアント/サーバーの初期化

  • リアルタイム接続の管理

  • サーバーのミドルウェアの仕組み

  • メッセージの送受信の実装

  • 認可システムの構築

各トピックでは、サンプルコードを通じて実用的な使用方法を示します。チュートリアルに沿って、段階的に学習することをお勧めします。