Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

65
Visualizações
Problema con la creación de una lista de usuarios en línea con socket.io y React

Estoy tratando de agregar una lista de usuarios en línea a mi aplicación de chat, pero me encontré con este problema:

En la parte frontal, emito el nombre del usuario que ha iniciado sesión actualmente y luego actualizo el estado de mi matriz de usuarios:

 useEffect(() => { if (Auth.loggedIn()) { const { data } = Auth.getUserInfo(); socket.emit("user_connected", data.username); } // if I remove these brackets I get an infinite loop in my server }, []); useEffect(() => { socket.on("online_users", (onlineUsers) => { setUsers(onlineUsers); console.log(users); }); });

Creé la matriz de usuarios en el back-end usando el nombre de usuario emitido:

 const onlineUsers = []; io.on("connection", (socket) => { socket.join("public_chat"); console.log(`A user has joined the chat`); socket.on("user_connected", (user) => { const userExists = checkUserArray(user, onlineUsers); if (!userExists) { onlineUsers.push({ user, id: socket.id }); } console.log(onlineUsers); socket.in("public_chat").emit("online_users", onlineUsers); console.log(`${user} is now online.`); }); });

Abrí dos navegadores separados con dos usuarios registrados diferentes para probar, y cuando actualizo la página en un navegador, el otro obtiene la lista de usuarios en línea actualizada en tiempo real, pero el navegador en el que actualicé inicialmente tiene una matriz vacía para el estado de usuario. ¿Necesito hacer una tienda de estado global usando redux o algo así?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda