У меня есть такой GamePage.vue и так server.js, как мне  отобразить сколько всего пользователей у сокета, чтобы написать "m пользователей из n готовы играть"
<template>
    <div class="game__wrapper">
        <ChatComponent :ws="ws"/>
        <div class="game__block">
            <div class="play__block">
                <menu-button @click="play">Play</menu-button>
                <p>{{ playerCount }} players want to play</p>
            </div>
        </div>
    </div>
</template>

<script>
//import СhatComponent from '@renderer/components/СhatComponent.vue';
import ChatComponent from '@/components/СhatComponent.vue';

export default {
    data() {
        return {
            playerCount: 0,
            ws: null,
        }
    },
    components: {
        ChatComponent,
    },
    created() {
        this.connectWebSocket();
    },
    methods: {
        play () {
            if (this.ws.readyState === WebSocket.OPEN) {
                this.ws.send(JSON.stringify({ command: 'play' }));
            }
        },
        connectWebSocket () {
            this.ws = new WebSocket('ws://26.161.24.213:8080');

            this.ws.addEventListener('open', () => {
                console.log('Connected to WS');
            });

            this.ws.addEventListener('message', (event) => {
                const data = JSON.parse(event.data);
                console.log(data.playerCount);
                if (data.command === 'player_ready' || data.command === 'player_left') {
                    this.playerCount = data.playerCount;
                }
            });

            this.ws.addEventListener('close', () => {
                console.log('WS closed');
                // Тут можно доделать логику переподключения, если нужно
            });

            this.ws.addEventListener('error', (e) => {
                console.error('WS error', e);
            });
        },
    }
}
</script>

const WebSocket = require('ws');
const os = require('os');

function broadcast(data) {
  wss.clients.forEach(client => {
    if (client.readyState === WebSocket.OPEN) {
      client.send(JSON.stringify(data));
    }
  });
}

function getLocalIp() {
  const interfaces = os.networkInterfaces();
  for (const name of Object.keys(interfaces)) {
    for (const net of interfaces[name]) {
      // Пропускаем внутренние и не-IPv4 интерфейсы
      if (net.family === 'IPv4' && !net.internal) {
        return net.address;
      }
    }
  }
  return 'localhost'; // Fallback
}

const LOCAL_IP = getLocalIp();
const PORT = 8080;

const wss = new WebSocket.Server({ host: '0.0.0.0', port: PORT });

wss.on('connection', (ws) => {
  ws.isPlaying = false;

  ws.on('message', (message) => {
    let msg;
    try {
      msg = JSON.parse(message);
    } catch(e) {
      ws.send(JSON.stringify({error: 'Invalid message format, must be JSON'}));
      return;
    }

    if (msg.command === 'play') {
      if (!ws.isPlaying) {
        ws.isPlaying = true;
        const playerCount = Array.from(wss.clients).filter(
          client => client.isPlaying && client.readyState === WebSocket.OPEN
        ).length;

        broadcast({
          command: 'player_ready',
          playerCount,
        });

        console.log(`A player is ready. Total ready players: ${playerCount}`);
      }
    } else if (msg.command === 'chat_message') {
      /// Доходит / Проблема здесь, в isPlaying, он не меняется на true
      /// Нам не нужно чтобы игроки были в игре для чаттингаы
      // if (!ws.isPlaying) {
      //   ws.send(JSON.stringify({error: 'You should join the game first'}));
      //   return;
      // }
      broadcast({
        command: 'chat_message',
        text: msg.text,
        nickname: msg.nickname,
      })
      
    } else {
      ws.send(JSON.stringify({ error: 'Unknown command'}));
    }
  });

  ws.on('close', () => {
    if (ws.isPlaying) {
      ws.isPlaying = false;

      const playerCount = Array.from(wss.clients).filter(
        client => client.isPlaying && client.readyState === WebSocket.OPEN
      ).length;

      broadcast({
        command: 'player_left',
        playerCount
      });

      console.log(`A player left. Total players: ${playerCount}`);
    }
  });
    //console.log(`Received: ${message}`);
    // Отправить это сообщение всем подключенным клиентам
    // wss.clients.forEach((client) => {
    //   if (client.readyState === WebSocket.OPEN) {
    //     lient.send(message);
    //   }
    // });

});

console.log(`WebSocket server is running on:
  Local: ws://localhost:${PORT}
  Network: ws://${LOCAL_IP}:${PORT}`);