Ranking Dashboard と内蔵 wiki がどう公開され、どのルートが誰に委譲され、どこで認証・セッション・キャッシュ・DB を跨ぐかを整理したページです。

webdashboardwikiadminlag
このページは手書き密度を上げたサブシステム解説です。 クラス単体の一覧では見えにくい、モジュール横断の処理遷移を図と文章で読めるようにしています。

関連クラス

読むときの姿勢

サブシステム解説

どこが中核か

中心は WebDataServer です。ここで Spark の静的配信と動的ルート登録が同居し、ランキング画面・管理画面・チャット・ラグ分析・Wiki 入口がまとめて公開されます。チャットや協力イベントの一部だけは WebCoopSpark 側へ委譲され、認証周りは AuthService が補助します。

読む順番

まず コンストラクタ で何を立ち上げるかを確認し、次に setupRoutes で公開 URL の全体像を掴みます。その後に currentMcid と管理・チャット系の POST 処理を追うと、Cookie から DB、レスポンス返却までの境界が見えます。最後に startStatePublisherstartEventMaintenance を見れば、運用中の定期同期まで理解できます。

設計上の特徴

この層の特徴は、静的 wiki 配信動的ランキング API が同じ公開面に乗っていることです。今回追加した wiki ページ群も src/main/resources/public/wiki から配信されるため、別サーバを立てずに JAR 単体で完結します。

モジュール横断の処理遷移図

Dashboard から wiki を開く処理遷移

ブラウザ / Dashboard
Wiki タブ click
/wiki
WebDataServer の redirect
/wiki/index.html
public/wiki 配信
静的ファイル
index.html
subsystem-guides.html
各クラス詳細

Wiki タブは Spark 上の /wiki へ飛び、そこから staticFileLocation("/public") で同梱 HTML をそのまま返します。今回の追加ページもこの流れに乗っています。

ランキング画面の読み取り経路

ブラウザ GET
setupRoutes 登録済み route
短TTLキャッシュ確認
ScoreService / DataSource
HTML / JSON 生成
レスポンス返却
補助サービス
ServerLagService
OnlineStatusService
ChatService
EventService

見た目のページでも、途中で DB へ直接落ちるものと短TTLキャッシュを返すものが混在します。表示の遅さを見るときは route ごとの差を分けて考えると追いやすいです。

管理・チャット系の書き込み経路

POST / admin action
currentMcid / requireAdmin
入力検証
DB 更新 / service 呼び出し
通知 or 再描画
関連クラス
AuthService
ChatService
WebCoopSpark
WebPages

読むだけの route と違って、書き込み系では Cookie 解決・権限確認・DB 更新・表示更新が一続きになります。権限不整合や 403/429 まわりはこの段を重点的に見ると切り分けしやすいです。

変更時の注意点

関連ページ