マッチングサーバーの構造

サーバープロセスに関わるクラス

マッチングサーバーフレームワークのプロセスに関わるクラス関連は図のようになっている。ここではフレームワークを利用する際に不要な部分は省いている。

MatchingServer
nineとフレームワークの橋渡しを行う。フレームワークユーザーは意識する必要はない。
AccountService
アカウントや認証を担当するクラス。
AccountModule
アカウント処理のうち、アプリケーションでカスタマイズする部分を切りだしたクラス。ユーザーはこのクラスを継承して実装する。
RoomService
実際のマッチングサービスを提供するクラス。各ドメインに一つずつある。
RoomModule
マッチング処理のうち、アプリケーションでカスタマイズする部分を切りだしたクラス。ユーザーはこのクラスを継承して実装する。

データクラス

上記のプロセスで使用されるデータクラスは次のようなものがある。

Account
アカウント情報及び操作を担当するクラス。
Room
ルーム情報及び操作を担当するクラス。
セッター/ゲッター程度の単機能を Room に実装し、それらを組み合わせた複雑な機能は RoomModule に実装するとよい。
AccountContext, DomainContext
現セッションのアカウント及びドメインに関する情報を保持するクラス。
MatchSession
セッション及び接続を表すクラス。セッションオブジェクトが同一ならば、同じプレーヤーセッションとみなすことができる。
SessionHandle
AccountContext, DomainContext, MatchSession をひとまとめにしたハンドルクラス。コピーや値渡しなどを安全に行うことができる。
アプリケーションにセッション情報を渡す際にはこのクラスが使われる。