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"; const authConfig = readAuthConfig(); const tokenVerifier = new KeycloakTokenVerifier({ issuer: authConfig.keycloakIssuer, jwksUrl: authConfig.keycloakJwksUrl, allowedClientIds: authConfig.keycloakClientIds, }); const rtmt = new RTMTWS({ tokenVerifier, legacyUserKeyAuth: authConfig.legacyUserKeyAuth }); const gameStore = new GameStoreImpl(); const matchMaker = new MatchMakerImpl({ rtmt }); const gameManager = new GameManager({ rtmt, gameStore, matchMaker }) const expressApp = new ExpressApp({ gameStore, legacyUserKeyAuth: authConfig.legacyUserKeyAuth }); const server = new WebServer({ expressApp: expressApp.app }); rtmt.initWebSocket(server.server);