Quantcast
Channel: Active questions tagged javascript - Stack Overflow
Viewing all articles
Browse latest Browse all 140131

socket.io send data to matching socket's

$
0
0

when a user connects to my socket I add to a session map:

io.on('connection', function (socket) {
      sessionMap.set(socket.id,socket);
}

my session Map

var SessionMap = {};
module.exports = {
    set: function(key,value){
        SessionMap[key] = value;
    },
    get: function(key){
        return SessionMap[key]
    },
    delete: function(key){
        delete SessionMap[key]
    },
    all: function(){
        return SessionMap
    }
}

And also save my user socket id in a class player:

  socket.on('addPlayer-Queue', (result) => {
      sessionMap.set(socket.id,socket);
      queue.addPlayer(new Player({
        id: result.id,
        name: result.name,
        mmr: result.mmr
      }, socket.id));

And I have a function that selects two players that are connected (where I save in an array) and create a "battle" and then I wanted to send to the socket that was selected / matched for this battle the battle dice

This is my role that selects both players and creates a battle:

searching() {
    const firstPlayer = this.getRandomPlayer();

    const secondPlayer = this.players.find(
      playerTwo =>
        playerTwo.mmr < this.calculateLessThanPercentage(firstPlayer) &&
        playerTwo.mmr > this.calculateGreaterThanPercentage(firstPlayer) &&
        playerTwo.id != firstPlayer.id
    );

    if (!secondPlayer) {
      return null;
    }

    const matchedPlayers = [firstPlayer, secondPlayer];
    this.removePlayers(matchedPlayers);
    return new Match(matchedPlayers);
  }
}

And also when connecting I use a set interval to be performing this function every 1 second

But my difficulty is how I would send the data from this battle to the corresponding socket's

my relation socket with player

When a player enters my event I create a player by going through socket id And I also make a session map of this socket sessionMap.set(socket.id,socket);

my class player:

class Player {
    constructor(player,socketId) {
      this.id = player.id
      this.socketId = socketId
      this.name = player.name
      this.mmr = player.mmr
    }

  }

  module.exports = Player;

Viewing all articles
Browse latest Browse all 140131

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>