Diarkis Room の特徴

ここでは Diarkis Room の特徴や機能の概要などについてご紹介します。

Diarkis Room は仮想的に作られたルームに参加しているクライアント同士だけに限ってリアルタイム通信を使って双方向に同期をします。

Diarkis Room での同期は大きく分けて全体同期(ブロードキャスト)と部分同期(特定のクライアントに絞った同期)が用意されています。

同期の方式はサーバからのリレー方式を採用しています。

ルーム ID

ルームを作成するとルーム ID が払い出されますが、このルーム ID を任意の値に設定することはできません。仮にルームの ID を独自の値として管理する場合は外部のデータベース(Redis などがよく使われます)を使ってDiarkis Room ID と任意のルーム ID を紐付ける必要があります。

ルーム・プロパティ

Diarkis Room にはルーム毎にプロパティと呼ばれる動的に変更することができるメタデータを持つことが可能です。ルームのプロパティは排他処理機能を持っているため、同時に複数のクライアントが同じプロパティを更新する場合でも対応が可能です。ただし値を上書きするような処理の場合はこの範囲には該当しませんので、注意が必要です。ルームのプロパティはブロードキャスト或いはメッセージを使うことで参加しているクライアント間で同期することが可能です。

ルーム・ブロードキャスト (全体同期)

ルームのメンバーがサーバに同期メッセージを送信してサーバから他の全てのメンバーに対してメッセージをリアルタイム通信を使ってリレーすることで同期します。

ルーム・メッセージ(部分同期)

ルームのメンバーが特定のクライアントを指定してサーバに同期メッセージを送信してサーバから指定された特定のメンバーだけにリアルタイム通信を使ってリレーすることで同期します。

Diarkis の概念-1

存在するルームを探す

ルームは Diarkis のサーバクラスタ内に分散して作られるため、ルームの一覧などを検索して取得することが困難です。ただし、ルームに対して種別(Type)をつけることによって種別(Tye)毎に検索することが可能です。