import express from "express"; import cors from "cors"; import { createServer } from "http"; import { Server } from "socket.io"; const app = express(); app.use(cors()); app.use(express.json()); // Create HTTP + Socket.io server const server = createServer(app); const io = new Server(server, { cors: { origin: "*", }, }); app.get("/", (req, res) => { res.send("Duel of Minds backend is live!"); }); // --- SOCKET LOGIC --- io.on("connection", (socket) => { console.log("⚡ New player connected:", socket.id); socket.on("createRoom", () => { const roomCode = Math.random().toString(36).substring(2, 7).toUpperCase(); socket.join(roomCode); socket.emit("roomCreated", { roomCode }); console.log(`🎮 Room created: ${roomCode}`); }); socket.on("joinRoom", (roomCode) => { const room = io.sockets.adapter.rooms.get(roomCode); if (room) { socket.join(roomCode); socket.emit("roomJoined", { success: true }); io.to(roomCode).emit("playerJoined", socket.id); console.log(`👥 Player ${socket.id} joined room ${roomCode}`); } else { socket.emit("roomJoined", { success: false, message: "Room not found" }); } }); socket.on("disconnect", () => { console.log("❌ Player disconnected:", socket.id); }); }); // Start server const PORT = process.env.PORT || 3000; server.listen(PORT, () => console.log(`⚡ Server running on port ${PORT}`));