マッチングサービスの単位をドメインと呼ぶ。
マッチングサーバーは、ルーム/ロビーといったマッチングリソースを持っているる。これらのリソースはドメインで閉じている。
また、ドメインはマッチングロジックの単位でもある。マッチングロジックは様々なものを開発することができるが、一つのドメインは一種類のロジックのみを使用する。
サーバーは複数のドメインを持つことができるので、複数のマッチング方式を提供することができる。
さらに、クライアントは一つのセッションで複数のマッチングに参加することができる。それぞれのマッチングは異なるドメインのものでもよい。
アプリケーションからは、ルームモジュールを登録することでドメインを作ることができる。例えば次のようなコードになる:
MatchServer* pMatch = MatchServer::CreateInstance();
pMatch->setRoomModule("sample1", new SampleRoomModule());
このコードは、"sample1" という名前の新たなドメインを作り、そのモジュールに SampleRoomModule の新規インスタンスを設定している。
クライアントからは、どのドメインに入っているかをクライアントから見た番号(ドメインインデックス)で表す。 インデックスはドメインに入る時にクライアントが指定する。
EnterDomainRequest msg; msg.domainName = "sample1"; msg.domainIndex = 0; post(&msg);
ドメイン内のメッセージの受け渡しはここで指定した domainIndex が含められるので、これでドメインの識別を行う。