Bonsoir,
Je cherche pour un jeu à faire des rooms dynamiques, en effet, je souhaite pour chaque parties faire une room, de la forme par exemple "game-[ID de la partie]".
Chaque room ce type commençeraient alors par "game-", avec le même code.
Le problème étant que je ne sais pas et je n'ai pas trouvé comment faire.
Merci d'avance pour votre aide
Salut,
Pour créer des rooms dynamiquement il faut le faire du côté client.
Tu peux par exemple imaginer que le code ci-dessous est appelé lors du lancement d'une nouvelle game.
const socket = io.connect();
game.on('start', (gameID) => {
socket.emit('start', { name: `game-${gameID}`, player: 'Player1' });
});
Après j'imagine que tu as besoin d'envoyer des informations depuis ton back, tu peux imagnier cette solution:
const games = {};
const players = {};
io.sockets.on('connection', (socket) => {
socket.on('start', ({ name, player }) => {
if (!games[name]) games[name] = {};
games[name][id] = socket.to(socket.id);
games[name].join(name, () => {
// Si tu veux envoyer un message à une connection particulière (de manière privé)
socket.to(id).emit('nbPlayer', Object.key(games[name]).length - 1);
// Si tu envoyer un message à toute la room
socket.to(name).emit('srvMsg', 'Ready ?');
});
});
});
Cet exemple n'est pas complet mais j'espère qu'il te permettra d'avoir un point de départ.