mancala/apps/backend/src/index.ts

26 lines
1.0 KiB
TypeScript
Raw Normal View History

2021-06-27 01:41:52 +03:00
2022-07-15 21:43:29 +03:00
import { RTMTWS } from "./rtmt/rtmt_websocket";
import { GameManager } from "./game/GameManager";
import { GameStoreImpl } from "./game/gamestore/GameStoreImpl";
import { MatchMakerImpl } from "./matchmaker/MatchMakerImpl";
import { ExpressApp } from "./server/ExpressApp";
import { WebServer } from "./server/WebServer";
import { KeycloakTokenVerifier, readAuthConfig } from "./auth";
2021-06-27 19:28:09 +03:00
const authConfig = readAuthConfig();
const tokenVerifier = new KeycloakTokenVerifier({
issuer: authConfig.keycloakIssuer,
jwksUrl: authConfig.keycloakJwksUrl,
allowedClientIds: authConfig.keycloakClientIds,
});
const rtmt = new RTMTWS({ tokenVerifier, legacyUserKeyAuth: authConfig.legacyUserKeyAuth });
2022-07-15 21:43:29 +03:00
const gameStore = new GameStoreImpl();
2022-07-16 22:00:23 +03:00
const matchMaker = new MatchMakerImpl({ rtmt });
2022-07-15 21:43:29 +03:00
const gameManager = new GameManager({ rtmt, gameStore, matchMaker })
2021-06-27 19:28:09 +03:00
const expressApp = new ExpressApp({ gameStore, legacyUserKeyAuth: authConfig.legacyUserKeyAuth });
2022-07-16 17:42:49 +03:00
const server = new WebServer({ expressApp: expressApp.app });
2022-05-06 00:07:41 +03:00
rtmt.initWebSocket(server.server);