import { Server } from "socket.io"; import prisma from "./lib/prisma"; const io = new Server({ cors: { origin: "*", }, path: "/", }); // Map pour stocker les connexions des joueurs const playerConnections = new Map(); io.on("connection", (socket) => { console.log("New client connected"); // Rejoindre une room spécifique pour le jeu socket.on("joinGame", (gameId) => { socket.join(gameId); console.log(`Client joined game: ${gameId}`); }); // Gestion des offres WebRTC socket.on("offer", (data) => { socket.to(data.gameId).emit("offer", data.offer); }); socket.on("answer", (data) => { socket.to(data.gameId).emit("answer", data.answer); }); socket.on("candidate", (data) => { socket.to(data.gameId).emit("candidate", data.candidate); }); // Gestion de l'état du jeu socket.on("gameStateUpdate", (gameState) => { socket.to(gameState.id).emit("gameStateUpdate", gameState); }); // Gestion de l'audio socket.on("speaking", (data) => { socket.to(data.gameId).emit("playerSpeaking", { playerId: data.playerId, isSpeaking: true, }); }); socket.on("stoppedSpeaking", (data) => { socket.to(data.gameId).emit("playerSpeaking", { playerId: data.playerId, isSpeaking: false, }); }); socket.on("disconnect", () => { console.log("Client disconnected"); }); }); io.listen(5001); console.log("Game server running on port 5001");