Newer
Older
PixelPaintWar / apps / server / src / index.ts
import { createServer } from "http";
import { GameManager } from "./domains/game/GameManager";
import { RoomManager } from "./domains/room/RoomManager";
import { SocketManager } from "./network/SocketManager";
import { createIo } from "./network/createIo";
import { config } from "@repo/shared";

// サーバー待受ポート
const PORT = process.env.PORT || config.NETWORK_CONFIG.DEV_SERVER_PORT;

// HTTP サーバー・Socket.io サーバー生成
const httpServer = createServer((req, res) => {
  // Render の HTTP ヘルスチェック向けに 200 を返す
  if (req.url === "/") {
    res.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
    res.end("ok");
    return;
  }

  res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
  res.end("not found");
});
const io = createIo(httpServer);

// ゲーム管理・通信管理クラス初期化
const gameManager = new GameManager();
const roomManager = new RoomManager();
const socketManager = new SocketManager(io, gameManager, roomManager);

socketManager.initialize();

// HTTP サーバー起動
httpServer.listen(PORT, () => {
  console.log(`
  🚀 Server is running on port ${PORT}
  waiting for connections...
  `);
});