JSFiddle - React, Tailwind, and code Playground

JavaScript

var io 			= 	require('socket.io').listen(8080);


rooms 			= [];
boards			= [];
emptyBoard      = [
					['', '', ''],
					['', '', ''],
					['', '', '']
				];


io.on('connection', function (socket) {


	socket.on('createRoom', function(data){
		console.log(data);
		// name  p1 p1 sign p2 sign bet prepared turn plays
		rooms[data.name] = [data.name, data.user,'X', '','O', data.bet, 0, 1, 0];
		
		// Initalize board.
		boards[data.name] = emptyBoard;
		
		// Send user to his room.		
		socket.emit('roomCreated', {id: data.name});
	});

	// Room doesnt exists.
	socket.on('existsRoom', function(data){
		if(rooms[data.id] == undefined) socket.emit('kill');
	});

	socket.on('enterGame', function(data){
		// Append user to room.
		if(rooms[data.rId][1] != data.user) rooms[data.rId][3] = data.user;

		// To the channel.
		socket.room = data.rId;
		socket.join(data.rId);
		
		io.sockets.in(data.rId).emit('getRoomInfo', {room:rooms[data.rId]});
		
		console.log("AVAILABLE ROOMS: "+rooms);
		// Send notification to all in room.
		//socket.broadcast.emit('notification');

	});

	socket.on('prepared', function(data){
		if(rooms[data.id][6] == 1){
			io.sockets.in(data.id).emit('gameReady');
			console.log("readyy");
		}else rooms[data.id][6]++	

	});

	socket.on('addClick', function(data){
		turn = rooms[data.id][7];
		userTurn = rooms[data.id][turn];
		
		// Is your turn?
		if(userTurn == data.user){

			// Add click to table with his sign.
			boards[data.id][data.y][data.x] = rooms[data.id][(turn+1)];
			

			// Sum 1 to plays counter.
			rooms[data.id][8]++;
			
			console.log(data.id);
			io.sockets.in(data.id).emit('getBoard', {b: boards[data.id]});

			// Change turn.
			if(turn == 1) rooms[data.id][7]=3;
			else if(turn == 3) rooms[data.id][7]=1;
		}else{
			// Not your turn.
			socket.emit('notYourTurn');
		}
	});


	/*socket.room = "room1";
	socket.join(socket.room);
	console.log(socket.room);
	socket.broadcast.to("room1").emit('hello', 'wwdwdw');*/
});