モジュールは、フレームワークを拡張する際にユーザーが記述する中心部分である。
メッセージハンドラやアクションフックなどの多数のエントリが提供されており、これを記述することでマッチング動作をカスタマイズする。
モジュールはアカウントモジュールとルームモジュールの二種類がある。アカウントモジュールは認証に関わる処理をまとめたものであり、ルームモジュールはマッチング処理をまとめたものである。
フレームワークからは AccountModule, RoomModule という抽象基底クラスが提供されている。これを継承し、仮想関数をオーバーライドすることで実装を行う。
例えば、ドメインに入る時の可否判定とフック処理を行う関数 tryEnterDomein() を次のように実装する:
bool SampleRoomModule::tryEnterDomain(SessionHandle& hSession)
{
if (hSession.account()->id().size() < 5) {
return false;
}
return true;
}
これで、ID文字列が 5文字未満のクライアントがドメインに入ることを拒否できるようになる。