bug with concurrent connection of NodeJS Websocket (ws)

60 Views Asked by At

there is a simultaneous connection and the system bugs: one user connects, and the other does not. Maybe you need to create from connections.

wss.on('connection', (ws, req, client) => {

  if (typeof (ws.session) === "undefined") ws.session = global.session;
  let room = ws.session.user.room;

  if (room != undefined) ws.room = room;
  ws.on('message', message => {
    let getInfoMessage = JSON.parse(message)
    switch (getInfoMessage.method) {
      case "NEW_MESSAGE":

        user = ws.session.user;
        mes = getInfoMessage;
        let user1 = user.personalID;
        let user2 = user.reciever;
        let roomName = user1 + user2;

        wss.clients.forEach(client => {
          if (client.room == undefined) client.room = user.room;
          
          if (client.room != undefined) {
            if ((client.room[0] == roomName || client.room[1] == roomName)) {
              console.log('room: ' + roomName)
              client.send(mes.payload.message)
            }
          }

        })
        break;
    }
  })
  ws.on('close', e => {
    console.log('diconnection');
  });
});
0

There are 0 best solutions below